Skip to content

Data & Event Platform — workflows

Target

This page describes intended behaviour or structure. No implementation is claimed unless a section is explicitly marked Current implementation or Evidence.

W1 — A topic and a schema version reach the registry

sequenceDiagram
    participant M as Architecture model (generated catalogs)
    participant REL as Release pipeline
    participant E as EnvelopeRegistryService
    participant C as Consumer services
    REL->>E: ModelSync (topics, producers, consumers, schema refs)
    E->>E: compare each payload schema with the current version
    alt backward or full compatible
        E-)C: SchemaVersionPublished
    else breaking
        E-->>REL: refused, unacknowledged consumers listed
        C->>E: acknowledge (after their release)
        E-)C: SchemaVersionPublished
    end
Hold "Alt" / "Option" to enable pan & zoom

W2 — A host publishes and a consumer deduplicates (Orleans profile)

sequenceDiagram
    participant S as Producer service (aggregate)
    participant OB as Outbox (same transaction)
    participant D as Outbox dispatcher grain
    participant IB as Inbox grain (consumer)
    participant H as Consumer handler
    S->>S: state transition
    S->>OB: envelope + payload (ResolveTopic cached)
    Note over S,OB: one transaction: transition + outbox row
    D->>IB: deliver (at-least-once)
    IB->>IB: dedup on eventId within 72 h
    IB->>H: handle once
    Note over H: an external effect is never assumed exactly-once, uncertain outcomes are recorded and reconciled
Hold "Alt" / "Option" to enable pan & zoom

The MassTransit and NServiceBus profiles carry the same envelope with their own outbox and inbox contracts; the port and the envelope do not change (ADR-0012).

W3 — A store is bound under residency

sequenceDiagram
    participant P as Provisioning (Runtime Cloud)
    participant ST as StoreProfileService
    participant R as RetentionResidencyService
    participant SB as SecretBrokerService
    P->>ST: SetStoreBinding (knowledge-sql, tenant, profile, region israelcentral)
    ST->>R: EvaluateResidency (tenant, class, region)
    R-->>ST: allowed
    ST->>SB: key and connection reference
    ST-)P: StoreBindingChanged (Provisioned)
    P->>ST: migrations applied → Active
Hold "Alt" / "Option" to enable pan & zoom

W4 — A tenant is deleted

flowchart LR
    REQ[Workspace admin: IssueGovernanceOrder TenantDeletion] --> AP[approval, production class]
    AP --> O1[tasks: derived stores · projections, indexes, memory, cache]
    O1 --> O2[tasks: artifacts and authoritative stores · control, runtime, model, tools, integration]
    O2 --> O3[audit redaction · never purge]
    O3 --> CM[FactoryCommercialService closes the subscription]
    CM --> DONE[DeletionOrderCompleted + evidence]
    O1 & O2 & O3 -. no acknowledgement by due date .-> OV[Overdue · alert · evidence]
Hold "Alt" / "Option" to enable pan & zoom

W5 — A tenant exports its data

Export orders fan out like deletions; every owner contributes a bundle in open formats (JSON Lines, Parquet, Markdown) and the Exporter assembles one archive with a manifest of what was and was not included (audit evidence is included redacted). ExportCompleted carries the artifact reference; the Studio notifies the requester.

W6 — Retention expiry

Nightly, RetentionSweeper computes expiry per rule and legal hold and issues purge tasks (delete, redact or archive) to owning services with receipts; traces expire in the backend by its own policy (30 days), everything else by the Factory's orders.