/awesome-elixir-cqrs

A curated list of awesome Elixir and Command Query Responsibility Segregation (CQRS) resources.

Awesome Elixir and CQRS Awesome

A curated list of awesome Elixir, Command Query Responsibility Segregation (CQRS), and event sourcing resources.

Contents

Libraries

  • 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.

  • Disco - Simple, opinionated yet flexible library to build CQRS/ES driven systems.

  • 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.

  • Fable - An Elixir event sourcing library.

  • Helios.Aggregate - Elixir library defining Aggregate behaviour and providing extendable facility for aggregate command pipeline.

  • Incident - Event Sourcing and CQRS in Elixir abstractions.

  • Maestro - An Elixir event store + CQRS library.

  • Pachyderm - A virtual/immortal/durable/resilient/global actor "always exists" and "never fails".

  • Perhap - Purely functional event store and service framework inspired by domain driven design and reactive architectures.

  • Seven Otters - A CQRS/ES Starter Kit for the BEAM.

  • TeaVent - TeaVent allows you to perform event-dispatching in a style that is a mixture of Event Sourcing and The "Elm Architecture" (TEA).

Community resources

Books

Articles

2019

Presentations

2014

2016

2017

2018

2019

Screencasts

Example applications

  • 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.

  • Gift card demo by Ben Smith - a Commanded demo application focused around a simplified gift card domain using Phoenix LiveView for realtime UI updates.

  • Segment Challenge by Ben Smith - a full featured Elixir Phoenix web application built with Commanded used to host Strava competitions for athletes.

  • Simple Pay by Christopher Yammine - An exploration of using CQRS/ES with Elixir & EventStore database.

License

CC0

To the extent possible under law, Ben Smith has waived all copyright and related or neighbouring rights to this work.