Skip to content
effect-cqrs
Getting started
Tutorial
Blog
Bank demo
Shop demo
Search
Ctrl
K
Cancel
Getting started
Tutorial
Blog
Bank demo
Shop demo
GitHub
Menu
Start here
Getting started
Using with AI
Tutorial
The shop
How it's built
Open the demo ↗
The bank
How it's built
Open the demo ↗
The workshop
How it's built
Run the demo ↗
Guides
Aggregates
Commands
View models
Sagas
Testing
Storage
Personal data
Integration
Reference
Modules
Coming from moleculer-cqrs
Performance
Limitations
API
API reference
Aggregate
AggregateService
Causation
Checkpoints
CommandApi
CommandGateway
EventCatalog
EventStore
EventVersions
Fixture
Ids
Leases
Metadata
Outbox
ParkedEvents
PersonalData
PersonalDataNode
PostgresEventStore
Saga
SqliteEventStore
ViewModel
Blog
All posts
CQRS with effect-cqrs
1. Why CQRS and event sourcing
2. Your first aggregate
3. Read models you can throw away
4. Sagas
5. Tests, schema changes and production
When things go wrong
Fix the code, not the data
The wrong event
The double write
I clicked twice
The form that overwrites
The message that blocks the queue
What it looked like last Tuesday
The bug that won't reproduce
Two pods, two emails
Design choices
The saga you skipped
Three ways to read
Forget me, from the backups too
From a table to a log
Change the rules, keep the history
Getting started
Tutorial
Blog
Bank demo
Shop demo
GitHub
API reference
Copy page
View as Markdown
Open in Claude
Open in ChatGPT
Modules
Section titled “Modules”
Aggregate
AggregateService
Causation
Checkpoints
CommandApi
CommandGateway
EventCatalog
EventStore
EventVersions
Fixture
Ids
Leases
Metadata
Outbox
ParkedEvents
PersonalData
PersonalDataNode
PostgresEventStore
Saga
SqliteEventStore
ViewModel