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-platform/cyoda-go/cyoda
# If your installer did not initialise local storage:
cyoda init ✓ SQLite-backed local storage by default · Mock auth locally
Install Cyoda’s agent skills so your coding agent understands Cyoda entities, workflows, criteria, processors, testing and local development conventions.
Cyoda ships agent skills that help AI coding tools generate Cyoda applications using the right project structure, entity models, workflow definitions, criteria, processors and tests. Choose your coding agent below.
Different agents support skills and instructions differently. Choose the tab for your agent.
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:design
/cyoda:build
/cyoda:compute
/cyoda:test
/cyoda:debug
/cyoda:migrate
/cyoda:docs
/cyoda:status If you are using a local development copy of the marketplace, the marketplace name may differ. The public marketplace should use cyoda.
Cyoda is an EDBMS — an entity database management system — that runs transactional entity lifecycle management, state-machine workflows, event-driven processing, and temporal auditability as one integrated runtime. Not a collection of components. One model.
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.
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 HelloWorld entity workflow: the states, transitions, criteria, and processors attached to that entity.
brew install cyoda-platform/cyoda-go/cyoda cyoda
starts the local server on localhost:8080.
Entity workflow
Lifecycle for the HelloWorld example entity
# 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 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.
Language-agnostic API with client libraries for Java, Python, Go, and Kotlin. One consistent API surface in development and production.
Explicit entity state and defined transitions give AI tools a structured, queryable model. More precise reasoning, less inference from scattered code.
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.
You do not have to change the programming model as your requirements grow. Cyoda starts as a fast local runtime for developer and AI build loops, then scales through durable and distributed backends without changing the core model.
Install the open-source binary and run Cyoda on your own machine or infrastructure. Local development, self-hosting, and experimentation. No account required.
Managed, hosted infrastructure. No binary to install, no cluster to operate. Get started immediately.
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: install the open-source binary and run Cyoda on your own machine or infrastructure. Free, Apache 2.0, no account required. Cyoda Cloud: the hosted SaaS option at ai.cyoda.net — managed infrastructure, no installation required. Enterprise Cyoda: larger-scale deployment with enterprise support, SLA, and dedicated engagement for organisations with advanced operational requirements. All three options share the same core API and entity model.
Java, Python, Go, and Kotlin via gRPC client libraries. Any language with a gRPC implementation can connect to the Cyoda API directly.
The source code is at github.com/Cyoda-platform/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.
brew install cyoda-platform/cyoda-go/cyoda
cyoda