All Projects → looplab → Eventhorizon

looplab / Eventhorizon

Licence: apache-2.0
CQRS/ES toolkit for Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Eventhorizon

eventuous
Minimalistic Event Sourcing library for .NET
Stars: ✭ 236 (-75.44%)
Mutual labels:  cqrs, ddd, domain-driven-design, event-sourcing, eventsourcing
Eventflow.example
DDD+CQRS+Event-sourcing examples using EventFlow following CQRS-ES architecture. It is configured with RabbitMQ, MongoDB(Snapshot store), PostgreSQL(Read store), EventStore(GES). It's targeted to .Net Core 2.2 and include docker compose file.
Stars: ✭ 131 (-86.37%)
Mutual labels:  event-sourcing, eventsourcing, ddd, cqrs, domain-driven-design
Bifrost
This is the stable release of Dolittle till its out of alpha->beta stages
Stars: ✭ 111 (-88.45%)
Mutual labels:  event-sourcing, eventsourcing, ddd, cqrs, domain-driven-design
Goes
Go Event Sourcing made easy
Stars: ✭ 144 (-85.02%)
Mutual labels:  event-sourcing, eventsourcing, ddd, cqrs, domain-driven-design
Eventsourcing
A library for event sourcing in Python.
Stars: ✭ 760 (-20.92%)
Mutual labels:  event-sourcing, eventsourcing, ddd, cqrs, domain-driven-design
Revo
Event Sourcing, CQRS and DDD framework for C#/.NET Core.
Stars: ✭ 162 (-83.14%)
Mutual labels:  event-sourcing, eventsourcing, ddd, cqrs, domain-driven-design
delta
DDD-centric event-sourcing library for the JVM
Stars: ✭ 15 (-98.44%)
Mutual labels:  cqrs, ddd, domain-driven-design, event-sourcing, eventsourcing
Rails event store
A Ruby implementation of an Event Store based on Active Record
Stars: ✭ 947 (-1.46%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design
Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (-83.45%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design
Akkatecture
a cqrs and event sourcing framework for dotnet core using akka.net
Stars: ✭ 414 (-56.92%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design
Dotnet New Caju
Learn Clean Architecture with .NET Core 3.0 🔥
Stars: ✭ 228 (-76.27%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design
Productcontext Eventsourcing
A practical/experimental Event Sourcing application on Product Bounded Context in an e-commerce
Stars: ✭ 88 (-90.84%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design
Kreta
Modern project management solution
Stars: ✭ 177 (-81.58%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design
EcommerceDDD
Experimental full-stack application using Domain-Driven Design, CQRS, and Event Sourcing.
Stars: ✭ 178 (-81.48%)
Mutual labels:  cqrs, ddd, domain-driven-design, event-sourcing
micro
Functional prooph for microservices
Stars: ✭ 53 (-94.48%)
Mutual labels:  cqrs, ddd, event-sourcing, eventsourcing
Messagebus
A MessageBus (CommandBus, EventBus and QueryBus) implementation in PHP7
Stars: ✭ 178 (-81.48%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design
Eventflow
Async/await first CQRS+ES and DDD framework for .NET
Stars: ✭ 1,932 (+101.04%)
Mutual labels:  eventsourcing, ddd, cqrs, domain-driven-design
Event Sourcing Castanha
An Event Sourcing service template with DDD, TDD and SOLID. It has High Cohesion and Loose Coupling, it's a good start for your next Microservice application.
Stars: ✭ 68 (-92.92%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design
e-shop
Sample Spring Cloud microservices e-shop.
Stars: ✭ 48 (-95.01%)
Mutual labels:  cqrs, ddd, domain-driven-design, event-sourcing
Event Sourcing Cqrs Examples
Event Sourcing and CQRS in practice.
Stars: ✭ 265 (-72.42%)
Mutual labels:  event-sourcing, ddd, cqrs, domain-driven-design

PkgGoDev Bulid Status Coverage Status Go Report Card

Event Horizon

Event Horizon is a CQRS/ES toolkit for Go.

NOTE: Event Horizon is used in production systems but the API is not final!

CQRS stands for Command Query Responsibility Segregation and is a technique where object access (the Query part) and modification (the Command part) are separated from each other. This helps in designing complex data models where the actions can be totally independent from the data output.

ES stands for Event Sourcing and is a technique where all events that have happened in a system are recorded, and all future actions are based on the events instead of a single data model. The main benefit of adding Event Sourcing is traceability of changes which can be used for example in audit logging. Additionally, "incorrect" events that happened in the past (for example due to a bug) can be compensated for with an event which will make the current data "correct", as that is based on the events.

Read more about CQRS/ES from one of the major authors/contributors on the subject: http://codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh/

Other material on CQRS/ES:

Inspired by the following libraries/examples:

Suggestions are welcome!

Usage

See the example folder for a few examples to get you started.

Storage implementations

Official

  • Local / in memory
  • MongoDB (beware of the 16MB document size limit that can affect large aggregates)

Contributions / 3rd party

Event Bus Implementations

Official

  • GCP Cloud Pub/Sub
  • Jetstream (NATS), uses nightly build of NATS/Jetstream
  • Kafka
  • Local / in memory, useful for testing/experimentation.
  • Redis

Contributions / 3rd party

Development

To develop Event Horizon you need to have Docker and Docker Compose installed.

To run all unit tests:

make test

To run and stop services for integration tests:

make run
make stop

To run all integration tests:

make test_integration

Testing can also be done in docker:

make test_docker
make test_integration_docker

Get Involved

License

Event Horizon is licensed under Apache License 2.0

http://www.apache.org/licenses/LICENSE-2.0

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