Mutations & Change Events
Structured write operations batched into atomic ChangeSets. Every mutation emits a ChangeEvent for subscriptions. Schema evolution via reversible Migration steps.
Mutation Types
| Mutation | Fields |
|---|---|
| CreateObject | type_id, instance_id, properties |
| UpdateProperties | instance_id, properties (partial update) |
| DeleteObject | instance_id |
| CreateLink | link_type, source, target, properties |
| DeleteLink | link_type, source, target |
| ExecuteAction | action_id, target, parameters |
ChangeSets
Atomic batches with principal tracking and timestamps. BatchResult reports per-mutation outcomes (Success, Rejected, Skipped).
Subscriptions
| ChangeKind | Payload |
|---|---|
| ObjectCreated | type_id, instance_id |
| ObjectUpdated | type_id, instance_id, changed_properties |
| ObjectDeleted | type_id, instance_id |
| LinkCreated | link_type, source, target |
| LinkDeleted | link_type, source, target |
| ActionExecuted | action_id, target |
Delivery modes: InternalBus, Webhook (url + headers), Stream (topic).
Schema Migration
| Step | Description |
|---|---|
| AddProperty | Add with optional default value |
| RemoveProperty | Remove by name |
| RenameProperty | Rename from → to |
| ChangeType | Type coercion: NumericCast, Parse, DefaultOnFailure, Expression, Strict |
| AddConstraint | Add constraint to property |
| RemoveConstraint | Remove constraint by index |
| Add/RemoveInterface | Interface implementation changes |
Every Migration includes rollback steps. is_reversible() checks if rollback steps are defined.
Questions?
Reach out for help with integration, deployment, or custom domain codecs.