commanded/eventstore
Elixir MITEvent store using PostgreSQL for persistence
1.2k
Stars
155
Forks
27
Open issues
5
Contributors
AI Analysis
An Elixir-based event store built on PostgreSQL for implementing event sourcing and CQRS architectures. It provides persistent event storage with support for clustering across multiple nodes, enabling scalable event-driven systems with strong consistency guarantees.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
PostgreSQL-backed event store for Elixir, stable and production-proven but narrowly adopted
EventStore is an Elixir library providing event sourcing persistence using PostgreSQL as the storage backend. It enables appending, reading, and subscribing to event streams with built-in support for clustering, correlation tracking, and transactional guarantees. The project claims production use and is part of the broader `commanded` ecosystem for CQRS/ES patterns in Elixir. Adoption appears concentrated within the Elixir community, particularly among teams using the `commanded` framework, rather than widespread.
Created in 2016 as part of the `commanded` project ecosystem. It emerged during the wave of CQRS and event sourcing adoption in functional programming communities. Positioned as an Elixir-native alternative to language-agnostic event stores, leveraging PostgreSQL's reliability and transactions rather than building a custom storage engine.
Repository gained 1,152 stars over a decade, indicating stable but modest adoption. Growth appears driven by Elixir ecosystem adoption and interest in CQRS/ES patterns rather than by viral expansion. No stars gained in the last 7 days (as of 2026-06-30) suggests mature, plateaued adoption rather than accelerating interest. Recent activity (last push 2026-05-04) shows continued maintenance but not rapid feature velocity.
README explicitly claims 'Yes, this event store is being used in production' but provides no specific case studies, company names, deployment scale, or quantified metrics. The statement is a declarative claim without third-party verification. Adoption is not verified beyond the project's own assertion.
Based on README, the library exposes a high-level API for event stream management (append, read, subscribe). It appears to use PostgreSQL transactions for ACID compliance and supports clustering via distributed Elixir nodes. Event serialization defaults to JSON. Likely uses Postgrex driver for database interaction (based on similar repos). README does not detail schema design, query optimization, or internal concurrency patterns, so architectural depth cannot be fully assessed.
Not documented in README. CI badge indicates tests are run, but coverage metrics are not published.
Last push 2026-05-04 (within 2 months of evaluation date) indicates active maintenance. Changelog and upgrade guides suggest deliberate versioning. No evidence of abandonment or backlog decay in README. However, lack of recent star activity and modest fork count (155) suggest a stable project that is not attracting new contributors at scale.
ADOPT IF: you are building an Elixir application using CQRS/ES patterns and want a battle-tested PostgreSQL-backed event store with clustering support, low operational overhead (PostgreSQL only), and transaction guarantees. AVOID IF: you need event store capability across polyglot services, require extensive vendor support, or need to avoid Elixir-specific tooling. MONITOR IF: you are evaluating the `commanded` ecosystem but unsure about long-term maintenance; the project shows active maintenance but modest growth trajectory, so ensure the broader `commanded` community remains viable.
Independent dimensions
Mainstream potential
3/10
Technical importance
6/10
Adoption evidence
3/10
- Adoption is concentrated within the Elixir community; if Elixir adoption plateaus or declines, the project's user base may shrink.
- Production use is claimed but not independently verified; no public case studies or deployment metrics available to validate reliability claims at scale.
- Maintenance is steady but not accelerating; contributor base may be small, creating long-term sustainability risk if primary maintainers step back.
- Tightly coupled to PostgreSQL; no support for alternative storage backends limits flexibility for teams considering multi-database strategies.
- Documentation is README-centric; absence of published benchmarks, performance comparisons, or architectural deep-dives may hinder adoption by teams with strict performance requirements.
EventStore will likely remain a stable, niche component within the Elixir ecosystem. It will continue to receive maintenance updates and security patches, but is unlikely to expand adoption significantly beyond the `commanded` framework community. Mainstream event-sourcing adoption in other languages and ecosystems (e.g., .NET, Java, Node.js) may continue to grow, but will use different tools, leaving EventStore as a perpetual Elixir-specific choice rather than a category leader.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- Elixir
- License
- MIT
- Last updated
- 2mo ago
- Created
- 126mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Top contributors
Similar repos
commanded/commanded
Commanded is an Elixir framework for building CQRS/ES (Command Query...
elixir-ecto/postgrex
Postgrex is a PostgreSQL driver for Elixir that enables communication between...
elixir-horde/horde
Horde provides distributed Supervisor and Registry capabilities for Elixir...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
1.2k | — | Elixir | 8/10 | 2mo ago |
|
|
2k | — | Elixir | 8/10 | 3w ago |
|
|
1.2k | — | Elixir | 8/10 | 4w ago |
|
|
1.5k | — | Elixir | 8/10 | 4mo ago |
|
|
7.6k | — | Elixir | 8/10 | 1d ago |
|
|
2.1k | — | Elixir | 8/10 | 5mo ago |
EventStore is a component within the larger `commanded` CQRS framework (2,014 stars). `commanded` is the orchestrator; EventStore is the persistence layer. They are symbiotic, not competitive.
Standalone, language-agnostic event store with gRPC API. Serves teams across multiple languages; EventStore serves Elixir-specific use cases. EventStoreDB offers more operational tooling but adds deployment complexity.
Kafka is a distributed event log for streaming; EventStore is a transactional event sourcing library. Different use cases: Kafka for high-throughput pub/sub, EventStore for aggregate state reconstruction and audit trails.
Teams can implement event sourcing directly atop PostgreSQL via raw SQL or Ecto. EventStore saves boilerplate and provides subscription semantics; the tradeoff is reduced control and Elixir-specific coupling.
Realtime is a real-time database layer (7,592 stars); EventStore is a write-optimized event log. Different architectural goals, though both use PostgreSQL.