All Projects → slashdotdash → Conduit

slashdotdash / Conduit

Licence: mit
RealWorld example backend implementing the CQRS/ES pattern in Elixir and Phoenix

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Conduit

zio-event-sourcing
Purely functional concurent and scalable persistance layer implementing CQRS
Stars: ✭ 34 (-86.56%)
Mutual labels:  cqrs, event-sourcing, cqrs-es
Symfony 5 Es Cqrs Boilerplate
Symfony 5 DDD ES CQRS backend boilerplate
Stars: ✭ 759 (+200%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
Event Sourcing Cqrs Examples
Event Sourcing and CQRS in practice.
Stars: ✭ 265 (+4.74%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (-37.15%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
Commanded
Use Commanded to build Elixir CQRS/ES applications
Stars: ✭ 1,280 (+405.93%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
flighthub
Flight ticket booking system implemented with CQRS and ES.
Stars: ✭ 26 (-89.72%)
Mutual labels:  cqrs, event-sourcing, cqrs-es
Eventstore
Event store using PostgreSQL for persistence
Stars: ✭ 729 (+188.14%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
fee-office
A DDD, CQRS, ES demo application
Stars: ✭ 35 (-86.17%)
Mutual labels:  cqrs, event-sourcing, cqrs-es
Asombroso Ddd
Una lista cuidadosamente curada de recursos sobre Domain Driven Design, Eventos, Event Sourcing, Command Query Responsibility Segregation (CQRS).
Stars: ✭ 41 (-83.79%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
Go Cqrs All
All-in-one collection for Go CQRS / ES / DDD examples
Stars: ✭ 39 (-84.58%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
VehicleTracker
Vehicle Tracker with Microservice example
Stars: ✭ 70 (-72.33%)
Mutual labels:  cqrs, event-sourcing, cqrs-es
Booster
Booster Cloud Framework
Stars: ✭ 136 (-46.25%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
go-eventually
Idiomatic Event Sourcing in Go
Stars: ✭ 76 (-69.96%)
Mutual labels:  cqrs, event-sourcing, cqrs-es
delta
DDD-centric event-sourcing library for the JVM
Stars: ✭ 15 (-94.07%)
Mutual labels:  cqrs, event-sourcing, cqrs-es
akka-persistence-foundationdb
A replicated Akka Persistence journal backed by FoundationDB
Stars: ✭ 43 (-83%)
Mutual labels:  cqrs, event-sourcing, cqrs-es
Awesome Elixir Cqrs
A curated list of awesome Elixir and Command Query Responsibility Segregation (CQRS) resources.
Stars: ✭ 467 (+84.58%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
Rails event store
A Ruby implementation of an Event Store based on Active Record
Stars: ✭ 947 (+274.31%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
Vertex
Vertex is a distributed, ultimately consistent, event traceable cross platform framework based on Orleans, which is used to build high-performance, high throughput, low latency, scalable distributed applications
Stars: ✭ 117 (-53.75%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
Pos
Sample Application DDD, Reactive Microservices, CQRS Event Sourcing Powered by DERMAYON LIBRARY
Stars: ✭ 207 (-18.18%)
Mutual labels:  event-sourcing, cqrs-es, cqrs
Digital Restaurant
DDD. Event sourcing. CQRS. REST. Modular. Microservices. Kotlin. Spring. Axon platform. Apache Kafka. RabbitMQ
Stars: ✭ 222 (-12.25%)
Mutual labels:  event-sourcing, cqrs

Conduit

Discover why functional languages, such as Elixir, are ideally suited to building applications following the command query responsibility segregation and event sourcing (CQRS/ES) pattern.

Conduit is a blogging platform, an exemplary Medium.com clone, built as a Phoenix web application.

This is the full source code to accompany the "Building Conduit" eBook.

This book is for anyone who has an interest in CQRS/ES and Elixir. It demonstrates step-by-step how to build an Elixir application implementing the CQRS/ES pattern using the Commanded open source library.


MIT License

Build Status


Getting started

Conduit is an Elixir application using Phoenix 1.4 and PostgreSQL for persistence.

Prerequisites

You must install the following dependencies before starting:

Configuring Conduit

  1. Clone the Git repo from GitHub:

    $ git clone https://github.com/slashdotdash/conduit.git
    
  2. Install mix dependencies:

    $ cd conduit
    $ mix deps.get
    
  3. Create the event store database:

    $ mix do event_store.create, event_store.init
    
  4. Create the read model store database:

    $ mix do ecto.create, ecto.migrate
    
  5. Run the Phoenix server:

    $ mix phx.server
    

This will start the web server on localhost, port 4000: http://0.0.0.0:4000

This application only includes the API back-end, serving JSON requests.

You need to choose a front-end from those listed in the RealWorld repo. Follow the installation instructions for the front-end you select. The most popular implementations are listed below.

Any of these front-ends should integrate with the Conduit back-end due to their common API.

Running the tests

MIX_ENV=test mix event_store.create
MIX_ENV=test mix event_store.init
MIX_ENV=test mix ecto.create
MIX_ENV=test mix ecto.migrate
mix test

Need help?

Please submit an issue if you encounter a problem, or need support.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].