Current section

Files

Jump to
erl_esdb CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to erl-esdb will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.1.0] - 2024-12-18
### Added
- Initial release of erl-esdb, a BEAM-native Event Store built on Khepri/Ra
- Event stream operations:
- `append/4,5` - Write events with optimistic concurrency control
- `read/5` - Read events from streams (forward/backward)
- `get_version/2` - Get current stream version
- `exists/2` - Check if stream exists
- `list_streams/1` - List all streams in store
- `delete/2` - Soft delete streams
- Subscription system:
- Stream subscriptions - events from specific streams
- Event type subscriptions - events by type across streams
- Pattern subscriptions - wildcard stream matching
- Payload subscriptions - content-based filtering
- Snapshot management:
- `save/5` - Save aggregate state snapshots
- `load/2,3` - Load latest or specific version snapshots
- `list/2` - List all snapshots for a stream
- `delete/3` - Delete old snapshots
- Aggregation utilities:
- `foldl/4` - Fold over events with accumulator
- `foldl_from_snapshot/4` - Fold starting from latest snapshot
- Cluster support:
- UDP multicast discovery (LibCluster gossip compatible)
- Automatic Khepri/Ra cluster formation
- Node monitoring and failover
- Leader election and tracking
- Emitter pools for high-throughput event delivery
- Partitioned writers for concurrent stream writes
- BEAM telemetry integration with configurable handlers
- Comprehensive test suite (72 unit + 53 integration tests)
- Educational guides:
- Event Sourcing fundamentals
- CQRS patterns
- Subscriptions usage
- Snapshots optimization
### Dependencies
- Khepri 0.17.2 - Raft-based distributed storage
- Ra 2.16.12 - Raft consensus implementation
- Telemetry 1.3.0 - BEAM telemetry for observability