Demo application to demonstrate the power of the event sourcing architecture for DevelopersBR livestream
You can check that in JavaScript as well
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.
- What is event sourcing (talk in portuguese)
- Let's talk about event sourcing and how it can save your project (in portuguese)
- An architecture guide to use event sourcing
- Livestream video where I build this application (in portuguese)
- Slides used in this livestream
- Article about this architecture
- Video about this architecture (2021) [Portuguese]
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.
- Doctor
- Tardis - A Nodejs library to control time
- Paradox - A Nodejs library to aid event sourcing apps
This app version has some intentional "errors" and/or misleading designs in order to incentivate students to improve it.
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