!!! note "Advanced — reference only" The transactor is an advanced feature without a dedicated how-to guide yet. This page is the API reference; start from the tutorial and function patterns if you're new to VGI.
The transactor is a long-lived subprocess that gives worker functions transactional access to a
database, mediated by TransactorClient over the TransactorProtocol.
The bundled transactor requires both:
pip install 'vgi-python[transactor]'for its Python dependencies.- A VGI fork build of
duckdb-pythonprovidingDuckDBPyConnection.subcursor(), which lets reads share an open write transaction. This extension has not yet been merged into Haybarn or upstream DuckDB; installing the extra alone is insufficient.
Engine resolution prefers haybarn when installed, then falls back to duckdb.
Use an environment where the selected engine provides subcursor(); installing
a compatible duckdb build alongside an incompatible haybarn installation
does not override that preference.
These requirements apply to the bundled transactor. Workers can implement table writes against their own backing data sources without using it.
::: vgi.transactor