Skip to content

Drivers ​

One contract per primitive, 48 interchangeable backends. Configuration selects the driver; your code depends on the contract. This page is the full matrix. Each library's page documents constructors, configuration, and tradeoffs per driver.

Queue ​

Ten drivers behind one queue API. The first three live in the root module; the rest are optional driver modules you go get only if you use them.

DriverWhat it is for
workerpoolIn-process async workers, the local-first default
syncInline execution, useful for tests and CLIs
nullAccepts jobs and drops them, for disabling queues cleanly
redisDurable distributed queue with full admin operations
natsQueue-subject routing over NATS
rabbitmqBroker-backed delivery and workers
sqsAWS-native queue transport
postgresDurable SQL-backed queue
mysqlDurable SQL-backed queue
sqliteDurable embedded SQL queue

Details: queue library · queues in the framework

Events ​

8 available drivers behind one typed event bus. The standalone library calls its local driver sync; GoForj Apps expose the same local role as inproc. Apps also use natsjetstream where the library matrix uses the shorter jetstream.

DriverWhat it is for
syncIn-process dispatch, the local-first default
nullDrops events, for disabling fan-out cleanly
natsSubject-based distributed pub/sub
jetstreamDurable stream-backed events
redisSimple distributed fan-out
kafkaTopic-based fan-out
snsSNS fan-out with SQS delivery
gcppubsubTopic and subscription fan-out

Details: events library · events in the framework

Cache ​

Ten drivers behind one cache API with TTLs, locks, counters, and rate limits.

DriverWhat it is for
memoryFastest in-process cache, the local-first default
fileDurable single-host cache
nullNo-op cache, for disabling caching cleanly
redisShared cache, locks, and rate limits
memcachedSimple shared TTL cache
natsJetStream KV-backed cache
dynamodbDynamoDB-backed shared cache
sqliteDurable embedded SQL cache
postgresDurable shared SQL cache
mysqlDurable shared SQL cache

Details: cache library · cache in the framework

Storage ​

Nine drivers behind one storage API for files and blobs.

DriverWhat it is for
localLocal filesystem disks, the local-first default
memoryIn-memory disks for tests
s3S3-compatible object storage
gcsGoogle Cloud object storage
sftpRemote filesystem over SSH
ftpRemote filesystem integration
dropboxDropbox-backed file storage
redisTemporary distributed blob storage
rcloneAny rclone-supported remote

Details: storage library · storage in the framework

Mail ​

Eight drivers behind one fluent message builder.

DriverWhat it is for
logWrites messages to the log, the local-first default
smtpAny SMTP server, including Mailpit locally
resendResend API delivery
postmarkPostmark API delivery
mailgunMailgun API delivery
sendgridSendGrid API delivery
sesAmazon SES delivery
fakeIn-memory capture for tests

Details: mail library

Database ​

Three drivers behind generated connections and the ORM. Dialect differences live in per-driver migration files, rendered for you.

DriverWhat it is for
sqliteLocal-first embedded SQL for Apps that select it
postgresProduction relational database
mysqlProduction relational database and the current forj new default

Details: database connections · migrations

How Selection Works ​

Driver support is compiled in through *_SUPPORTED_DRIVERS, selection happens at runtime through *_DRIVER variables, and misconfiguration fails fast at startup instead of failing quietly in production. Driver selection covers how to choose; the swap section on the landing page shows the same service code running against local and production backends.