Lesson 12← back to roadmap
ELIPS validates every operation as you enqueue it, so commit() is a pure write.
From docs/cpp/api-reference/transaction.md: TransactionVault::place() validates dimension and finiteness at enqueue, throwing DimensionMismatch or InvalidVector. If enqueue succeeds for every op, commit() cannot fail validation.
python
with db.begin_transaction() as txn:
v = txn.vault("notes")
v.place(vector1, {"tag": "a"})
v.place(vector2, {"tag": "b"})
# clean exit -> commit
# exception -> rollback (destructor)cpp
auto txn = db->begin_transaction();
auto& tv = txn.vault("notes");
tv.place(vector1, {{"tag", std::string{"a"}}});
tv.place(vector2, {{"tag", std::string{"b"}}});
txn.commit(); // or txn.rollback();