Timebox is a small, opinionated event sourcing library for Go with append-only event storage, optimistic concurrency, snapshotting, durable message scheduling, and durable queues. It supports Redis, PostgreSQL, or Raft as its persistence backend.
- Getting started explains how to install Timebox and execute a command.
- Order tutorial builds an application using aggregates and transactions.
- Aggregates and events covers identities, payloads, and appliers.
- Transactions shows how to commit changes across aggregates.
- Scheduler explains how to deliver messages at a durable deadline.
- Queues explains how to publish and consume durable, ordered messages.
- Snapshots explains how to load state without replaying its full history.
- Indexing covers queries by aggregate status and tags.
- Archiving shows how to remove finished aggregates from live storage and export their records.
- Backends helps you choose and configure persistence.
- Production patterns covers the structure of a long-running service.
The order example shows an aggregate lifecycle using Redis.
Work in progress. Not ready for production use.
