Stateful entities
Define typed entity types with fields, valid states, lifecycle guards, and transition rules. The model is explicit, version-controlled, and enforced at runtime.
Cyoda is an open-source EDBMS that runs entity lifecycle management, state-machine workflows, event-driven processing, and transactional consistency as one integrated runtime. Build scalable backend services without stitching together separate systems. Auditable history by default.
# macOS / Linux via Homebrew
brew install cyoda/cyoda-go/cyoda
# Initialise SQLite-backed local storage
cyoda init
# Windows: signed binaries (zip) on the GitHub releases page ✓ SQLite-backed local storage by default · Mock auth locally
Cyoda is an entity database management system (EDBMS) built around stateful business entities rather than passive database records. An entity's lifecycle, permitted transitions, event responses, and history are part of the model itself, making application behaviour explicit, enforceable, and queryable.
Standard backend stacks require separate systems for each: a workflow engine, an event bus, a state table, an audit log, and application code to stitch them together. Every seam is a source of inconsistency, hidden state, and debugging difficulty. Cyoda replaces that stack. Entity state, valid transitions, event triggers, and business rules are declared once, enforced consistently, and recorded automatically.
The explicit structure matters beyond compliance. When workflow logic, entity state, and event flow are visible and queryable in one model, both engineers and AI tools can reason about system behavior precisely. The system stays comprehensible as it grows, not in spite of growth, but because the model enforces clarity.
Define typed entity types with fields, valid states, lifecycle guards, and transition rules. The model is explicit, version-controlled, and enforced at runtime.
Each entity workflow runs as a finite state machine. Invalid lifecycle transitions are rejected at the API boundary. Transition logic is declared, not buried in application code.
Events trigger entity lifecycle transitions. The event model is first-class, explicit, and traceable — not routed through a separate bus or implicit callbacks.
State transitions are atomic. An entity's state and its history are always consistent. No partial updates. No reconciliation logic required.
Every state change is recorded. Query the exact state of any entity at any point in time. Point-in-time access is built in, not retrofitted.
A non-modifiable record of every transition: entity, state change, actor, timestamp. Compliance and debugging share the same source of truth.
REST API for entities, search, and workflow operations — any language with an HTTP client works. gRPC connects external compute processors. Java and Python client templates get you started.
Explicit entity state and defined transitions give AI tools a structured, queryable model. More precise reasoning, less inference from scattered code.
The shortest useful path: install the binary, start the local server, import the lifecycle workflow for an entity model, create an entity instance, move it through a valid transition, and read the state back. The graph shows the orders entity workflow used in the commands below: the draft and submitted states and the manual submit transition.
→ Full install guide on docs.cyoda.netEntity workflow
Lifecycle for the orders example entity used below
# Import the entity workflow for the orders model.
curl -X POST http://localhost:8080/api/model/orders/1/workflow/import \
-H 'Content-Type: application/json' \
-d @orders-entity-workflow.json
ENTITY_ID=$(curl -s -X POST http://localhost:8080/api/entity/JSON/orders/1 \
-H 'Content-Type: application/json' \
-d '{ "orderId": "ORD-1", "amount": 42.00, "currency": "EUR" }' \
| jq -r '.[0].entityIds[0]')
curl -X PUT http://localhost:8080/api/entity/JSON/$ENTITY_ID/submit
curl http://localhost:8080/api/entity/$ENTITY_ID Install Cyoda’s agent skills so your coding agent understands Cyoda entities, workflows, criteria, processors, testing and local development conventions.
Claude Code can install the Cyoda plugin from the Cyoda skills marketplace.
/plugin marketplace add Cyoda-platform/cyoda-skills
/plugin install cyoda@cyoda
/reload-plugins /cyoda:app /cyoda:setup
/cyoda:auth
/cyoda:design
/cyoda:build
/cyoda:compute
/cyoda:test
/cyoda:debug
/cyoda:migrate
/cyoda:docs
/cyoda:status Cyoda Developer Console is a desktop application for inspecting and correcting generated workflow JSON during the build phase. Work with local workflow files without a running Cyoda environment.
Cyoda keeps the same model and API surface as you grow. Start in-memory for fast local development, AI-assisted engineering, and rapid iteration, then move to durable single-node, clustered, and enterprise-scale deployments when you need them.
Install the open-source binary and run Cyoda on your own machine or infrastructure. Local development, self-hosting, and experimentation. No account required.
Larger-scale infrastructure with enterprise support, SLA, and dedicated engagement for organisations with advanced operational requirements.
Cyoda is an open-source entity database management system (EDBMS) and workflow runtime. You define your entity types — the fields they carry, the states they can be in, and the valid transitions between states. Cyoda enforces those rules at the API boundary, records every state change immutably, and lets you query the history of any entity at any point in time. It runs as a single binary with no distributed cluster required.
An entity database management system (EDBMS) is a runtime that manages the full lifecycle of typed, stateful business objects — entities. Where a standard database stores rows, an EDBMS tracks state transitions, enforces lifecycle rules, and maintains a temporal audit trail. Cyoda adds a workflow engine to this model: transition rules are explicit, invalid transitions are rejected at the API boundary, and the complete state history is queryable.
Most backend systems need to track the state of business objects over time — orders, users, requests, approvals, jobs. Without a structured model, state logic ends up scattered across application code and database columns with no enforcement and no history. Cyoda gives each entity a defined lifecycle with enforced rules. Your application code drives transitions; Cyoda ensures they are valid and records them.
Systems where entities change state over time and where the history of those changes matters: workflow automation, order management, approval pipelines, event-driven backends, audit-sensitive applications, and anywhere you would otherwise build a hand-rolled state machine with an audit log.
Most backend systems require separate tools for each: a workflow engine, a state machine library, an event bus, and a transaction manager, connected by integration code. Each connection point is a source of inconsistency, hidden state, and operational complexity. Cyoda runs these capabilities as one runtime. Entity state, lifecycle transitions, event-driven processing, and transactional consistency all operate within the same model — with no integration layer between them.
AI tools generate better code when the system model is explicit and structured. Because Cyoda defines entity types, valid states, and transition rules as queryable schema rather than implicit application logic, AI tools can reason about system behavior from the model rather than inferring it from scattered code. The result is more accurate code generation, more precise debugging assistance, and a lower risk of incorrect state handling in generated output.
SQLite-backed local storage is the default for a fresh local install. In-memory mode stores entity state in process memory and resets when the process stops, which is useful for fast functional tests. PostgreSQL stores entity state durably for service deployments that need an external database.
Run it yourself is the open-source path: install the Apache 2.0 binary and run Cyoda on your own infrastructure at no cost, with no account required. Enterprise Cyoda adds SLA-backed support and dedicated engagement for teams running at production scale. Both use the identical core API and entity model, so code written against one runs unchanged against the other.
Any language with an HTTP client can use the REST API for entities, search, and workflow operations. External compute processors connect over gRPC. Java and Python client example/template projects are available to get started quickly.
The source code is at github.com/Cyoda/cyoda-go. Issues, releases, and contributions are managed there.
Full documentation is at docs.cyoda.net. The install-and-first-entity guide covers installation, local startup, importing an entity workflow, creating an entity, invoking a lifecycle transition, and reading state back.