SmartKDB v5 Developer Guide 🛠️
1. ACID Transactions
SmartKDB v5 supports atomic transactions.
tx = db.tx_manager.begin()
try:
db.get_table("users").insert(data, transaction_id=tx)
db.get_table("logs").insert(log_entry, transaction_id=tx)
db.tx_manager.commit(tx)
except Exception as e:
db.tx_manager.rollback(tx)
print("Transaction failed:", e)
2. Time-Travel Queries
Access historical data using the Version Manager.
# Get record state at a specific timestamp
past_data = db.version_manager.get_version_at("users", "user_123", timestamp=1678886400)
3. Plugin Development
Create a python file in smartkdb/plugins/my_plugin.py.
def register(db):
# This function is called on startup
print("Plugin initialized")
# You can monkey-patch or extend DB functionality
db.my_custom_method = lambda: "Hello from Plugin"
4. Distributed Mode
Join a cluster:
db.node_manager.join_cluster("http://192.168.1.50:8000")