Drivers & Storage Subsystems
@sullux/event-engine defines clean, swappable driver interfaces for database backends and file storage layers.
Database Drivers (db)
Database drivers handle event persistence, projection execution, and transaction isolation.
1. SQLite Driver (@sullux/event-engine/db/sqlite)
The primary driver for local-first systems. Backed by node:sqlite with Write-Ahead Logging (WAL) and IMMEDIATE transaction locking.
const { SqliteDb } = require('@sullux/event-engine/db/sqlite')
const db = SqliteDb({
path: './events.db',
wal: true,
})
2. In-Memory Driver (@sullux/event-engine/db/memory)
High-speed in-memory database driver for unit tests and ephemeral runtime simulations.
const { MemoryDb } = require('@sullux/event-engine/db/memory')
const db = MemoryDb()
File System Drivers (fs)
File system drivers provide content-addressable storage (CAS) and blob persistence.
1. Local Filesystem (@sullux/event-engine/fs/local)
Stores chunked blobs in local directories:
const { LocalFs } = require('@sullux/event-engine/fs/local')
const fsDriver = LocalFs({
rootPath: '/var/lib/coms/blobs',
})
2. S3 Compatible Storage (@sullux/event-engine/fs/s3)
Streams binary payloads to AWS S3, Cloudflare R2, or MinIO buckets:
const { S3Fs } = require('@sullux/event-engine/fs/s3')
const s3Driver = S3Fs({
bucket: 'my-event-blobs',
endpoint: 'https://...',
})
3. In-Memory FS (@sullux/event-engine/fs/memory)
In-memory buffer storage for fast integration test isolation.