All Projects → khaosdoctor → event-sourcing-demo-app

khaosdoctor / event-sourcing-demo-app

Licence: MIT license
Demo application to demonstrate the power of the event sourcing architecture for DevelopersBR livestream

Programming Languages

typescript
32286 projects
Vue
7211 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Demo app for Event Sourcing architecture

Demo application to demonstrate the power of the event sourcing architecture for DevelopersBR livestream

You can check that in JavaScript as well

Summary

What is event sourcing

Event sourcing is a development pattern to solve audit problems and make our application more easily maintainable. It is described as:

A way to capture all changes to an application state as a sequence of events.

There's not much jabber about it right now, however this pattern first emerged in one of Martin Fowler's articles in 2005, for some reason it's been forgotten ever since.

I'm not describing it all here, however I have a series of related material (in portuguese) so you can study it for yourself.

Related material

Running the application

This app uses Docker Compose as runner, it'll build and set all your containers, you just need to run docker-compose up in the root directory.

Useful tooling

Challenge!

This app version has some intentional "errors" and/or misleading designs in order to incentivate students to improve it.

How do I improve?

Our branches are named master which is v1, we have v2 with some additional improvements. If you want to make even more improvements, clone the project and go to the v2 branch. Then do your thing and submit a PR for approval.

DO NOT FORGET TO ADD WHAT YOU HAVE CHANGED IN THE BACKEND CHANGELOG OR FRONTEND CHANGELOG FILES IN ORDER TO LET PEOPLE KNOW WHAT HAS BEEN DONE

PR's without changelogs will not be approved

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