Skip to content
Settings

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.

  1. In-Memory
    local dev + AI iteration
  2. SQLite
    embedded durable single node
  3. PostgreSQL
    durable clustered production
  4. Cassandra
    enterprise distributed scale
  • 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 SERIALIZABLE isolation 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.

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.