An open API service indexing awesome lists of open source software.

https://github.com/subvisual/workshop-ddd-es-cqrs

Workshop: building an application with Elixir and DDD/ES/CQRS
https://github.com/subvisual/workshop-ddd-es-cqrs

Last synced: 15 days ago
JSON representation

Workshop: building an application with Elixir and DDD/ES/CQRS

Awesome Lists containing this project

README

          

# ES/CQRS Workshop

## Intro

Hello, my name is [Ronaldo](http://github.com/ronaldofs) and I'm a software designer and developer, proud dad and guitarist wannabe.
I work @ [Subvisual](https://subvisual.com) where we focus on helping ventures jumpstart or scale their business, be it strategy or hands-on, currently collaborating on several projects in web3/blockchain space.

## Overview

In this workshop, we'll build a backend application in Elixir where the main goal is to showcase and discuss Event Sourcing and CQRS in the context of "real-world" business problems.

We'll cover strategy, planning and specification for a selected and scoped business domain and analyse implementation patterns and trade-offs for each component of the final solution.

**Topics covered:**

- Domain-driven Design
- Domain/subdomain
- Ubiquitous language
- Bounded context
- Continuous collaboration
- Tactical patterns
- Event Sourcing and CQRS
- CRUD
- Events and Streams
- Event Store
- Projection
- Process manager / Saga
- Collaborative modeling
- Event Storming
- Event Modeling
- Context Mapping
- User Story Mapping
- Value Stream Mapping
- Process
- Delivery vs Discovery

## Resources

**Projects:**

- [commanded](https://github.com/commanded) (es/cqrs tooling in elixir)
- [eventstore](https://github.com/commanded/eventstore) (eventstore in elixir for postgres)
- [eventstoredb](https://eventstore.com) (db built for event sourcing)
- [message-db](https://github.com/message-db/message-db) (event/message store for postgres)
- [jet/equinox](https://github.com/jet/equinox) (.NET)
- [pyeventsourcing](https://github.com/pyeventsourcing/eventsourcing) (Python)

**Links:**

- [Slack community: ddd-cqrs-es](https://ddd-cqrs-es.slack.com/)
- [Virtual DDD](https://virtualddd.com)
- [Event Modeling](https://eventmodeling.org)
- [DDD Crew](https://github.com/ddd-crew)
- [EventSourcing.live](https://eventsourcing.live)
- [DDD Europe](https://dddeurope.com)

**Articles:**

- [Life beyond Distributed Transactions](https://www.ics.uci.edu/~cs223/papers/cidr07p15.pdf)
- [Immutability Changes Everything](https://queue.acm.org/detail.cfm?id=2884038)
- [Data on the Outside vs. Data on the Inside](https://queue.acm.org/detail.cfm?id=3415014)

**Books:**

- Domain-driven Design Distilled (Addison-Wesley)
- Domain Modeling made Functional (Pragmatic Programmers)
- [Event Storming](https://www.eventstorming.com/book)
- Secure By Design (Manning)
- Accelerate (IT Revolution)
- Team Topologies (IT Revolution)
- [DDD: The first 15 years](https://dddeurope.com/15years)
- [Versioning in an Event Sourced System](https://leanpub.com/esversioning)