A curated list of awesome Elixir, Command Query Responsibility Segregation (CQRS), and event sourcing resources.
-
Chronik - A lightweight event sourcing micro framework for Elixir.
-
Commanded - Use Commanded to build your own Elixir applications following the CQRS/ES pattern. Provides support for command registration and dispatch, hosting and delegation to aggregate roots, event handling, and long running process managers.
-
Commanded audit middleware - Command auditing middleware for Commanded CQRS/ES applications using Ecto for persistence.
-
Commanded Ecto projections - Read model projections for Commanded using Ecto.
-
Commanded scheduler - Schedule one-off and recurring commands for Commanded CQRS/ES applications .
-
Commanded Swarm registry - Distributed process registry using Swarm for Commanded.
-
-
Eidetic - An event sourcing library for Elixir.
-
ES - Event Sourcing for Ecto and Postgresl/Dynamodb events storage.
-
EventBus - Traceable, extendable and minimalist event bus implementation for Elixir with built-in event store and event watcher based on ETS.
-
Eventlog - A simple event log backed by dynamodb and dynamodb streams.
-
EventStore - An Elixir event store using PostgreSQL for persistence.
-
Extreme - Elixir adapter for Greg Young's Event Store.
-
Helios.Aggregate - Elixir library defining Aggregate behaviour and providing extendable facility for aggregate command pipeline.
-
Maestro - An Elixir event store + CQRS library.
-
Perhap - Purely functional event store and service framework inspired by domain driven design and reactive architectures.
-
DDD/CQRS/ES Slack - A Slack team for those who want to chat about domain-driven design, CQRS, event Sourcing, and sometimes random things. Main channel is language and framework agnostic. Join ddd-cqrs-es on Slack to get an invite.
-
Elixir lang Slack - This offical Elixir language Slack team includes an #eventsourcing channel for CQRS/ES and Elixir discussion. Join Elixir on Slack to get an invite.
- Building Conduit - Applying CQRS/ES to an Elixir and Phoenix web app.
-
A Functional Foundation for CQRS/ES by Mathias Verraes - A CQRS architecture can be seen as a set of referentially transparent functions that model decisions and interpretation.
-
Building a CQRS/ES web application in Elixir using Phoenix by Ben Smith - Case study describing how a web application was built using CQRS/ES.
-
CQRS with Elixir and Phoenix by Jean-François Cloutier - Implementing the CQRS pattern in Elixir.
-
DDD within Elixir/Phoenix project: Umbrella apps & Service Object by David McLeod.
-
Elixir: Domain driven design with Actor Model by Naveen Negi.
-
Event Sourcing in Elixir by Derek Kraan - Explore how we can use some of Elixir’s more interesting features to implement event sourcing.
-
My First Event Sourced Application by Leif Gensert - Building an event sourced application using Commanded.
-
Building CQRS/ES web applications in Elixir using Phoenix by Ben Smith.
-
Building beautiful systems with Phoenix contexts by Andrew Hao @ ElixirDaze 2018 - Learn about Phoenix contexts from their origins in domain-driven design and how they help you to organise an Elixir application by providing rules around communication, boundary enforcement and testing. [ slides ]
-
CQRS and Event Sourcing by Bernardo Amorim @ Code Beam SF 2018 - A look into what Event Sourcing and Command Query Responsibility Segregation are and how they fit together, followed by a tutorial on how to implement an application using these concepts with Commanded (a framework for Elixir).
-
CQRS with Erlang by Bryan Hunter @ NDC 2014 - Dive into CQRS, and explore a sample implementation written in Erlang. [ slides | repo ]
-
Event-driven architectures in Elixir by Maciej Kaszubowski @ ElixirConf EU 2018 - Learn how you can improve your architecture and reduce coupling by using events. [ slides ]
-
Event Sourcing in Real World Applications Challenges, Successes and Lessons Learned by James Smith @ ElixirConf 2018 - Building a real time auction application for supplying fuel to ships using event sourcing.
-
Event Sourcing with Commanded by Andriy Drozdyuk. [ slides | repo ]
-
Implementing CQRS on top of OTP (in Elixir) by Hubert Łępicki. [ video ]
-
Intro to Event Sourcing and CQRS in Elixir by Ben Moss.
-
Perhap: Applying Domain Driven Design and Reactive Architectures to Functional Programming at ElixirConf 2017 by Rob Martin.
-
Winter is coming by Luis Ferreira @ Functional Conf 2017 - Building maintainable applications by applying domain-driven design in Elixir using umbrella apps and its actor model. [ slides | video ]
-
Bank by Bernardo Amorim - Sample Application for Elixir Brasil Talk.
-
Coins by Bernardo Amorim - An example app using CQRS and Event Sourcing built with Commanded for a talk at CodeBEAM SF 2018.
-
Conduit - A blogging platform, an exemplary Medium.com clone, built as a Phoenix web application.
-
DDD Shipping Example by Peter C Marks - Elixir implementation of the shipping example from Eric Evan's "Domain-driven Design: Tackling Complexity in the Heart of Software" book.
-
Simple Pay by Christopher Yammine - An exploration of using CQRS/ES with Elixir & EventStore database.
To the extent possible under law, Ben Smith has waived all copyright and related or neighbouring rights to this work.