All Projects → Pragmatists → eventsourcing-java-example

Pragmatists / eventsourcing-java-example

Licence: other
A simplified (in memory) example of Event Sourcing implementation for banking domain.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to eventsourcing-java-example

wolkenkit-todomvc
wolkenkit-todomvc is a todo application.
Stars: ✭ 15 (-81.93%)
Mutual labels:  ddd, event-sourcing
es-emergency-call
Struggling with CQRS, A+ES, DDD? We can help you!
Stars: ✭ 26 (-68.67%)
Mutual labels:  ddd, event-sourcing
cqrs
A lightweight, opinionated CQRS and event sourcing framework targeting serverless architectures.
Stars: ✭ 155 (+86.75%)
Mutual labels:  ddd, event-sourcing
backend
Ergonode backend repository
Stars: ✭ 100 (+20.48%)
Mutual labels:  ddd, event-sourcing
food-ordering-demo
Demo application focusing on the Food Ordering domain - Used in our video series
Stars: ✭ 28 (-66.27%)
Mutual labels:  ddd, event-sourcing
EcommerceDDD
Experimental full-stack application using Domain-Driven Design, CQRS, and Event Sourcing.
Stars: ✭ 178 (+114.46%)
Mutual labels:  ddd, event-sourcing
typescript-ddd-example
🔷🎯 TypeScript DDD Example: Complete project applying Hexagonal Architecture and Domain-Driven Design patterns
Stars: ✭ 607 (+631.33%)
Mutual labels:  ddd, ddd-sample
Proophessor Do
prooph components in action
Stars: ✭ 247 (+197.59%)
Mutual labels:  ddd, event-sourcing
awesome-talks
Awesome talks about event sourcing, cqrs, microservices, funcional programming ...
Stars: ✭ 23 (-72.29%)
Mutual labels:  ddd, event-sourcing
e-shop
Sample Spring Cloud microservices e-shop.
Stars: ✭ 48 (-42.17%)
Mutual labels:  ddd, event-sourcing
CleanArchitecture
Clean Architecture Solution for .NET 5
Stars: ✭ 18 (-78.31%)
Mutual labels:  ddd, event-sourcing
firebase-event-sourcing
Event Sourcing + CQRS + DDD for Firebase
Stars: ✭ 14 (-83.13%)
Mutual labels:  ddd, event-sourcing
kanban core extension
DDD on Rails Example
Stars: ✭ 29 (-65.06%)
Mutual labels:  ddd, ddd-sample
slack-community
Docs related to DDD-CQRS-ES Discord Community
Stars: ✭ 58 (-30.12%)
Mutual labels:  ddd, event-sourcing
tactical-ddd
lightweight helpers that I find myself implementing over and over again related to DDD/Event Sourcing tactical patterns, such as Value Objects, Entities, AggregateRoots, EntityIds etc...
Stars: ✭ 33 (-60.24%)
Mutual labels:  ddd, event-sourcing
eShopOnWeb
Sample ASP.NET Core 6.0 reference application, powered by Microsoft, demonstrating a layered application architecture with monolithic deployment model. Download the eBook PDF from docs folder.
Stars: ✭ 8,250 (+9839.76%)
Mutual labels:  ddd, ddd-sample
Wolkenkit Boards
wolkenkit-boards is a team collaboration application.
Stars: ✭ 236 (+184.34%)
Mutual labels:  ddd, event-sourcing
Event Sourcing
Provides basic functionality for event sourced aggregates.
Stars: ✭ 242 (+191.57%)
Mutual labels:  ddd, event-sourcing
muon-java
Muon Core for the JVM. APIs and Microservices taken to the next level
Stars: ✭ 18 (-78.31%)
Mutual labels:  ddd, event-sourcing
eventuous
Minimalistic Event Sourcing library for .NET
Stars: ✭ 236 (+184.34%)
Mutual labels:  ddd, event-sourcing

Event sourcing example in Java

A simplified (in memory) example of Event Sourcing implementation in Java for banking domain. Repository is splitted into exercises adding step by step more functionality towards good design of event sourcing with CQRS. You can play around and try to implement exercises or You can check out solution branches.

Step 1 - In memory iplementation of event sourcing

alt tag

  • Provide simple in-memory implementation of Event Store
  • Make all test passing using event sourcing

soultion

Step 1a (optional) - Unit of work pattern

  • Implement Unit of Work pattern where events are stored outside of aggregate

soultion

  • WIP

Step 1b (optional) - Projections

  • Implement Projections on Account to get number of transactions performed on account
  • eventStore.store() method shoud accept Event playload instead of domain Events
  • what should be api of eventStream()?

soultion

  • WIP

Step 2 (optional) - Optimistic locking

  • add optimistic locking

soultion

  • WIP

Step 3 - new Aggregate extraction

alt tag

  • Refactor to move all money transfer related stuff to separate aggregate
  • New aggregate will be also using Event Store

soultion

  • WIP

Step 4 - adding CQRS

alt tag

  • Apply CQRS rule and separate the command and reading side
  • Solution will use Eventual Consistency approach

soultion

  • WIP

Step 5

soultion

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