Skip to main content
In our data engine, everything is an entity. A claim, a patient record, an EDI file, an account — they’re all the same underlying structure. What makes them different is the components attached to them.

Entity structure

An entity is a dictionary of components, identified by a UUID:
The _ prefixed fields are metadata. Everything else is a component.

Components

A component is a named JSON object with a defined schema. Components are:
  • Versioned — schemas evolve without breaking existing data
  • Schema-validated — JSON Schema defines the structure; invalid data is rejected
  • Composable — attach any combination of components to any entity

Common components

Entity relationships

Entities are connected through entity edges — parent-child links:
  • Account (parent)
    • Claim 1 (child)
    • Claim 2 (child)
    • Remit 1 (child)
Edges are:
  • Many-to-many — an entity can have multiple parents and multiple children
  • Soft-deletable — removed links are marked as deleted, not physically removed
  • Queryable — API endpoints for fetching children and parents of any entity

Modifying entities

Entities are updated by submitting a delta — a partial update containing only the changed fields:
The engine merges the delta into the current state. You can also include relationship changes (add or remove parent-child links) and ownership transfers.

Checkpoints

Every entity change creates an immutable checkpoint containing: Checkpoints enable:
  • Audit trail — who changed what, when, and from what state
  • Point-in-time recovery — reconstruct entity state at any moment
  • Change propagation — checkpoints are what get delivered to users and services