MateuszNaKodach/awesome-eventmodeling
MateuszNaKodach/awesome-eventmodeling has 58 GitHub stars and 5 forks. GitHot measured 0 stars in 24 hours and +1 in 7 days. Last checked 2026-11-12 19:13 UTC. Last push 2026-10-17.
A curated list of awesome resources (articles / videos / courses / repositories) about Event Modeling.
Measured star growth
- in 24h
- 0
- in 7 days
- +1
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalAwesome Event Modeling 
A curated list of awesome resources (articles / videos / courses / repositories) about Event Modeling.
Event Modeling is a method of describing systems using an example of how information has changed within them over time. Specifically this omits transient details and looks at what is durably stored and what the user sees at any particular point in time. These are the events on the timeline that form the description of the system.
Event Modeling was coined by Adam Dymitruk by building on long-running process specifications that Greg Young used in CQRS/ES systems. Alberto Brandolini’s Event Storming sticky notes and collaboration was integrated to adopt the workshop format. The final piece was the UI/UX aspects to complete what more resembles a movie story board. In the recent years many organizations were able to get on the same page with all departments and get their projects done with much greater efficiency.
Event Modeling history from HERE.
🚀 Go ahead to the official web page here: 🌐 https://eventmodeling.org
Getting Started
- Read official introduction from Adam Dymitruk: Event Modeling: What is it?
- See Event Modeling Cheat Sheet by Sebastian Bortz: EventModeling Cheat Sheet
📖 Books
- Understanding Eventsourcing - Planning and Implementing scalable Systems with Eventmodeling and Eventsourcing - Martin Dilger
📕 Articles
- eventmodeling.org | Event Modeling: What is it? - Adam Dymitruk
- eventmodeling.org | Event Modeling Traditional Systems - Adam Dymitruk
- eventmodeling.org | Great User Experience Demands Event Modeling - Eric Lau
- eventmodeling.org | EventModeling Cheat Sheet - Sebastian Bortz
- eventmodeling.org | Natural Human Thinking - Event Storming vs Event Modeling - Rafał Maciąg
- zycienakodach.pl | Event Modeling & Modularny Monolit | Od kolorowych karteczek do kodu poprzez TDD (🇵🇱 Polish) - Mateusz Nowak
- InfoQ | Interview with Event Modeling Founder - Adam Dymitruk
- Goeleven.com | WHAT IS EVENT MODELING? (WITH EXAMPLE)
- Event Modeling - A New Approach to Software Design
- From Model to Code: Event Modeling & Axon Framework
📺 Videos
Official Event Modeling YouTube channel: Event-Driven Information Systems
- Event Modeling Workshop - Adam Dymitruk - Full mini-workshop for InfoZone.se on Event Modeling.
- Guidance Using Event Modeling
- Copenhagen DDD Event Modeling with Adam Dymitruk
- Event Modeling and Wardley Mapping with Chris Daniel
- OAuth2 Event Modeling in Go
- Event Sourcing, Event Modeling and Event Storming
- Event Modeling and Wardley Mapping with Chris Daniel
- Event Modeling a Time Tracking System
- Sagas Don't Exist
- CQRS and Event Sourcing Introduction with Greg Young
- Small Design Up-Front Removes Agile
- MrDev.pl | Krzysztof Owsiany | Moje 5 minut (🇵🇱 Polish)
🎙️ Podcasts
- ADD DOT | Event Modeling and Event Sourcing - host: Vaughn Vernon
- semaphoreci.com | Adam Dymitruk on How to Upgrade Your Toolbox with Event Modeling
- devsession.pl | Event Modeling – Rafał Maciąg (🇵🇱 Polish) - host: Grzegorz Kotfis
🛠️ Tools with Event Modeling support
Whiteboards and everything else with can help you lead Event Modeling workshop.
- miro
- Templates:
- Examples:
- eventmodeling.org | Event Modeling Tutorial: Time Tracking System
- eventmodeling.org | TODO List
- mrdev.pl | Krzysztof Owsiany | CatchTheFlow + Git (implementation)
- ZycieNaKodach.pl | Mateusz Nowak | Table Soccer Tournaments system + GitHub (implementation)
- ZycieNaKodach.pl | Mateusz Nowak | Programming course management system + GitHub (implementation)
- ZycieNaKodach.pl | Mateusz Nowak | StarWars Quiz - for frontend development bootcamp
- ZycieNaKodach.pl | Mateusz Nowak | Event Modeling workshops based on GitHub domain(🇵🇱 Polish) + GitHub (implementation) - DDD.EventSourcing.EventModeling.Kotlin.NodeJS.DotNet.GitHubClone
- Figma
- Templates:
- Examples:
- draft.io
- Templates:
- oNote
- Modellution (beta)
- prooph BOARD
- Examples:
- Cratis Screenplay - Text-based language for event models (commands, events, read models and Given/When/Then specifications) in
.playfiles- VS Code extension - Renders the model as an event-model board
- Cratis Studio (beta) - Collaborative event-modeling platform
🧑🏻💻 Code examples
Repositories with software implementations from Event Modeling
// TODO: WAITING FOR YOUR CONTRIBUTIONS
💡 Case studies
- Wimma - Event utilization in the start-up world - Per Ökvist
💬 Online Communities
- Event Modeling Discord - leaded by Adam Dymitruk
- -Event Modeling Slack - replaced by Discord
🤖 Prompt Engineering
- ChatGPT | Event Modeling Architect - Adam Dymitruk
Prompt content 2023.08.26
you are an event modeling architect. you describe everything in steps using example data. every step is either a state change or a view into state.each state change step has 4 items:
- the screen that shows how the state change is initiated by the user including example data.
- the command that contains the information that's needed to change the state including example data. only one command is allowed in this type of step. minimal information is used to mark the intent to change the state. this command can fail if business rules are broken.
- the resulting event with the information that shows how the state is changed including example data
- a reference to the previous step.
each state view step has 4 items:
- the screen with what information is available to view with example data,
- the read model that contains the model that populates the screen including example data. this is the result of a reducer over any relevant previous events. It may contain default data if no relevant events occured yet. only one read model is allowed in this type of step. it includes relevant ids that can be used by the system to accomodate commands.
- a list of relevant events including the step they were created in that happened in the previous steps to make the informaton available
- a link to the previous step
screen descriptions will include itemization of controls such as text boxes, lists, buttons, radio buttons, checkboxes, menus etc.
When a state view step connects to a state change step, they share the same screen so please repeat the screen between the 2 if they are related. When a state change step is followed by a state view step, references to relevant previous events serve as a link. These links ensure that there is referential integrity to the data in the system being shown. State changes are only user initiated. Any other state change is strictly deduced from a reduction of previous events. There are no explicit commands to adjust product inventaries or total prices.
Steps can also be called slices. A slice can be either a state change or a state view. Example data is used in each component - not just the property names. Data can be traced through the steps. Use realistic data and avoid gerenarlities like "Prouct A". Use integers or UUIDs as identifiers, but don't show them on the screens. You never combine operations into one step. if the instructions say something like "remove 2 products" you will make 2 steps to show explicitly how that happens.
Each command will have a suite of tests in the style of Given-When-Then GWT from BDD with the following format: "Given" is a set of 0..N events. "When" is the command. "Then" is one event showing the resulting state change if the command was successful. "Then" can be an exception if the scenario shows the command failing. The minimal amount of test is 2: 1 for a failure, 1 for a success. But more is usually typical to show data variations.
Each read model will have a suite of tests in the style of Given-When-Then GWT from BDD but without the "When" step. The "Given" is a set of 0..N events. The "Then" is a model that is the result of running a reducer over the events from the "Given" events.
The tests for commands and read models will be fully listed after all steps of the system are described.
Now that you know what to do, please architect the following system:
comletely show what happens when a user sees a page listing 10 different products, adds 2 products and removes one of them from their basket in an online store and then goes to checkout and pay. Please keep track of inventory (but not viewable by the end user) along the way and the users invoice history. show all tests needed.
Courses & Workshops
Please mark if they are free (🆓) or paid (💰).
- Introduction to Event Modeling by Bobby Calderwood 🆓
- Vaughn Vernon’s IDDD Workshop Series | Event Modeling & Event Sourcing (💰 latest price: ???)
Companies
Where Event Modeling is used for software development or consultancy services / workshops facilitating.
- Adaptech Group - CEO/Founder: Adam Dymitruk
Contribute
Contributions welcome! Read the contribution guidelines first.
Explore related projects
sindresorhus/awesome
😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]
536,125 starsEbookFoundation/free-programming-books
:books: Freely available programming books
401,517 starsnilbuild/developer-roadmap
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
371,936 starsvinta/awesome-python
The definitive list that answers "I want to do X in Python, which tool should I use?"
334,409 stars