Digital twins and the growth path
A Cyoda application is tier-agnostic. The entity model, the workflows, the REST and gRPC surfaces, and the query semantics are the same on every deployment tier. What changes as you move between tiers is non-functional: durability, consistency guarantees, scale, and operational cost. We call this the digital twin property — the same logic, running at a different point on the cost/scale curve.
The growth path
Section titled “The growth path”- In-Memorylocal dev + AI iteration
- SQLiteembedded durable single node
- PostgreSQLdurable clustered production
- Cassandraenterprise distributed scale
When to use each tier
Section titled “When to use each tier”- In-Memory — a single-process, zero-dependency runtime. Data is lost on restart. Use it for functional tests, fast AI iteration loops, and digital-twin scenario runs where you want to drive the same app logic at volumes and rates that would be prohibitively expensive against a durable backend.
- SQLite — durable, single-file, zero-ops. Use it for edge and IoT deployments, small-team self-hosting, and local development where you want data to survive restarts but do not want to operate a separate database.
- PostgreSQL — durable storage with
SERIALIZABLEisolation for production workloads. Run 3–10 stateless cyoda-go nodes behind a load balancer for active-active HA, with PostgreSQL as the only external dependency. This is the recommended production path for teams self-hosting. - Cassandra (via Cyoda Cloud) — a distributed, horizontally scalable backend available today as a managed service. Use Cyoda Cloud when you need enterprise-grade identity, multi-tenancy, and provisioning, and do not want to run the infrastructure yourself.
Choosing
Section titled “Choosing”Most teams make this choice along four axes:
- Durability — can the data disappear on a restart? If yes, In-Memory is fine. Otherwise you need SQLite or up.
- Write volume and HA — a single process can go a long way on SQLite, but active-active HA with concurrent write safety wants PostgreSQL or cloud.
- Ops appetite — PostgreSQL is one dependency; SQLite is zero; Cyoda Cloud is “someone else’s problem”.
- Scale ceiling — in-process stores have limits Cassandra does not.
You do not have to pick forever. The whole point of the growth path is that the application does not change when you move. A test suite can run on In-Memory today, the early product on SQLite, the growing service on PostgreSQL, and the enterprise fleet on Cyoda Cloud — with the same code.
Where to go next
Section titled “Where to go next”- Run → overview — practical deployment guidance for each tier.
- Build → testing with digital twins — using In-Memory mode for scenario tests.