PersistentAI API Documentation / @persistent-ai/fireflow-vfs / server / ffdbLocksTable
Variable: ffdbLocksTable
constffdbLocksTable:PgTableWithColumns<{columns: {createdAt:PgColumn<{baseColumn:never;columnType:"PgTimestamp";data:Date;dataType:"date";driverParam:string;enumValues:undefined;generated:undefined;hasDefault:true;hasRuntimeDefault:false;identity:undefined;isAutoincrement:false;isPrimaryKey:false;name:"created_at";notNull:true;tableName:"ffdb_locks"; }, { }, { }>;expiresAt:PgColumn<{baseColumn:never;columnType:"PgTimestamp";data:Date;dataType:"date";driverParam:string;enumValues:undefined;generated:undefined;hasDefault:false;hasRuntimeDefault:false;identity:undefined;isAutoincrement:false;isPrimaryKey:false;name:"expires_at";notNull:true;tableName:"ffdb_locks"; }, { }, { }>;lockId:PgColumn<{baseColumn:never;columnType:"PgText";data:string;dataType:"string";driverParam:string;enumValues: [string,...string[]];generated:undefined;hasDefault:false;hasRuntimeDefault:false;identity:undefined;isAutoincrement:false;isPrimaryKey:false;name:"lock_id";notNull:true;tableName:"ffdb_locks"; }, { }, { }>;lockKey:PgColumn<{baseColumn:never;columnType:"PgText";data:string;dataType:"string";driverParam:string;enumValues: [string,...string[]];generated:undefined;hasDefault:false;hasRuntimeDefault:false;identity:undefined;isAutoincrement:false;isPrimaryKey:true;name:"lock_key";notNull:true;tableName:"ffdb_locks"; }, { }, { }>; };dialect:"pg";name:"ffdb_locks";schema:undefined; }>
Defined in: packages/fireflow-vfs/src/db/schema.ts:374
Distributed named locks for FFDB nodes (and general flow critical-section control).
Locks always have an expiry time (expiresAt) — crashed flows cannot permanently block other executions. The acquire logic cleans up expired rows on each attempt.
Acquire pattern: DELETE expired + INSERT ON CONFLICT DO NOTHING (retry loop) Release pattern: DELETE WHERE lock_key = ? AND lock_id = ?