flowchart TD
A1["POST /xapi/statements"]:::store
A2["Statement Storage (F-1)
new row appended"]:::store
ES["Event Store
immutable log (Ch. 5)"]:::core
B1["GET /xapi/statements?actor=&verb=&since="]:::read
B2["Statement Retrieval (F-2)
matching rows returned, none modified"]:::read
C1["Later statement
Verb: voided, Object: {statementId}"]:::void
C2["Voiding (F-3)
original row's voided_by field set"]:::void
C3["Row still exists
excluded from rollups & default retrieval"]:::void
A1 --> A2 --> ES
B1 --> B2
ES --> B2
C1 --> C2 --> ES
C2 --> C3
classDef core fill:#37474f,stroke:#1c2529,color:#fff,font-size:14px
classDef store fill:#2a9d8f,stroke:#1f7a6f,color:#fff,font-size:13px
classDef read fill:#8b9bb0,stroke:#5f6e82,color:#fff,font-size:13px
classDef void fill:#e9a23b,stroke:#b8791f,color:#222,font-size:13px
linkStyle default stroke:#999,stroke-width:2px