Open Source · Apache 2.0

One model for entity state, workflows, events, and transactions.

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

Compatible with:
  • Java
  • Python
  • Go
  • Kotlin
gRPC API Apache 2.0 Open Source

Use Cyoda with your AI coding agent

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.

Run inside Claude Code
/plugin marketplace add Cyoda-platform/cyoda-skills
/plugin install cyoda@cyoda
/reload-plugins
Start with
/cyoda:app
Useful Cyoda commands
/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.

What Cyoda is

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.

Cyoda architecture: your application connects via gRPC to Cyoda, which runs Entity Lifecycle, Workflow FSM, Event-Driven Processing, and Audit Log and History as one integrated model. Cyoda connects to in-memory or persistent storage. Your Application Code gRPC Cyoda Entity Lifecycle Workflow FSM Event-Driven Processing Audit Log & History In-Memory 0 dependencies resets on restart OR Persistent SQLite · PostgreSQL Cassandra

Install and get started

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.

  1. Install: brew install cyoda-platform/cyoda-go/cyoda
  2. Run: cyoda starts the local server on localhost:8080.
  3. Authenticate locally: mock auth is the default, so no bearer token is required.
  4. Keep going: use the docs for entity schemas, workflow processors, criteria, deployment options, and API reference.
→ Full install guide on docs.cyoda.net

Entity workflow

HelloWorld

Lifecycle for the HelloWorld example entity

Editable
orders-entity-lifecycle.sh
# 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

What you get

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.

Entity workflows

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.

Event-driven processing

Events trigger entity lifecycle transitions. The event model is first-class, explicit, and traceable — not routed through a separate bus or implicit callbacks.

Transactional consistency

State transitions are atomic. An entity's state and its history are always consistent. No partial updates. No reconciliation logic required.

Temporal history

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.

Immutable audit trail

A non-modifiable record of every transition: entity, state change, actor, timestamp. Compliance and debugging share the same source of truth.

gRPC API

Language-agnostic API with client libraries for Java, Python, Go, and Kotlin. One consistent API surface in development and production.

AI-ready model

Explicit entity state and defined transitions give AI tools a structured, queryable model. More precise reasoning, less inference from scattered code.

Start local. Iterate with AI. Scale without re-engineering.

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.

Cyoda growth path across in-memory, SQLite, PostgreSQL, and Cassandra runtime modes

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.

Three ways to use Cyoda

Run it yourself
Free · Apache 2.0

Install the open-source binary and run Cyoda on your own machine or infrastructure. Local development, self-hosting, and experimentation. No account required.

Cyoda Cloud
Hosted SaaS

Managed, hosted infrastructure. No binary to install, no cluster to operate. Get started immediately.

Enterprise Cyoda
Scalable deployment

Larger-scale infrastructure with enterprise support, SLA, and dedicated engagement for organisations with advanced operational requirements.

Common questions

What is Cyoda?

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.

What is an EDBMS?

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.

Why use stateful entities?

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.

What kinds of systems fit Cyoda?

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.

What does it mean to have workflow, state, events, and transactions in one model?

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.

How does Cyoda improve AI-assisted development?

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.

What is the difference between in-memory and PostgreSQL mode?

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.

What is the difference between Run it yourself, Cyoda Cloud, and Enterprise Cyoda?

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.

What languages are supported?

Java, Python, Go, and Kotlin via gRPC client libraries. Any language with a gRPC implementation can connect to the Cyoda API directly.

Where is the GitHub repo?

The source code is at github.com/Cyoda-platform/cyoda-go. Issues, releases, and contributions are managed there.

Where is the documentation?

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.

Start building locally

brew install cyoda-platform/cyoda-go/cyoda
cyoda