1.5 KiB
1.5 KiB
type, title, description, status
| type | title | description | status |
|---|---|---|---|
| User Story | US-005: Deliver events durably | Persist events locally and deliver ordered, bounded batches without blocking the Minecraft server thread. | done |
US-005: Deliver events durably
As a server operator, I want captured events buffered durably and retried after ingest failures so that temporary outages do not silently lose activity.
Acceptance criteria
- Events are persisted in an ordered local SQLite outbox before delivery.
- Persistence and HTTP delivery use dedicated workers rather than performing SQLite or network work on the Bukkit server thread.
- Delivery uses newline-delimited JSON batches bounded by configured event and byte limits.
- Delivery is requested periodically and may also be requested when an event-count or byte threshold is reached.
- Events are acknowledged and removed only after the ingest endpoint returns HTTP
202 Accepted. - Failed deliveries remain in the outbox and are retried with bounded exponential backoff.
- Stable event IDs provide at-least-once delivery semantics suitable for downstream deduplication.
- Shutdown waits for the shutdown event to be persisted and drains pending persistence work before closing the outbox.