app.Run to serve Filament’s API and execute runs inside your Go process.
By default, it uses in-memory SQLite and an in-process event bus, so state and
events disappear when the process restarts. You can replace them with Postgres
and NATS for durability.
The call listens on INGESTION_ADDR (default :8080) and blocks until its
context is canceled or a component fails. Blank imports register only the
connectors your binary needs.
Minimal embed
This compiles and runs as-is:app.Run uses an in-process event bus, in-memory SQLite, and
the default connector registries populated by the blank imports.
See the connector catalog for what
is available to import, and
writing a source to
add your own.
Options
Every default is replaceable through anapp.Option.
Whatever store you pass to
WithDataStore must also implement
filament.ScheduleStore, or Run returns an error — the scheduler needs it.
Both the SQLite and PostgreSQL stores qualify.
Durable embed
One durable setup uses the same bus, store, and secrets as the shipped binaries:eventbus/natsgives you durable, replayable JetStream deliverydatastore/postgrespersists everything Filament tracks- secrets can come from
secret/postgres(AES-GCM,ENCRYPTION_KEY),secret/aws, or the read-onlysecret/envprovider
Advanced composition
Whenapp.Run composes too much (you want only some modules, or a single
run with no server), the pieces underneath are public:
module.MountAllmounts a chosen set of modules againstmodule.Depseventbus/hostruns them against a busrunner.RunOneexecutes exactly one persisted run and exits, which is what the worker binary does