We attended Adaptech's CQRS Workshop, a 5-day 40-hour immersion in the body of work around CQRS and Event Sourcing in the area of consensus for the source of truth in digital information systems.
>Event storming is a workshop-based method to quickly find out what is happening in the domain of a software program. Compared to other methods it is extremely lightweight and intentionally requires no support by a computer. The result is expressed in sticky notes on a wide wall. wikipedia
Led by Adam Dymitruk, the author of Event Modeling and featuring 20 or so experienced software engineers including Greg Young the father of CQRS.
Both Adam and Greg have shattered the traditional ideas in software architecture in recent years and brought an unmatched insight into today’s software challenges.
Dissecting the issues at hand in modern distributed business systems, delivering always-on eCommerce, built for the CAP theorem era.
The workshop featured a time and attendance and hotel management system developed in open-source during a series of virtual Meetups with contributions from engineers from Canada and the US to the UK and Poland, Norway, Germany, etc.
In our Covid-19 era, the workshop was completely virtual, dogfooding its own tooling, most sessions ran 6A pacific till 2/3P and repeated at 6P for other time zones. (I took 45 pages of notes).
Techniques shared were from a consultancy software development company approach with high accountability for results from individual contributors and presented from a pragmatic and often times unusual viewpoint.
YOUTUBE CCGm38C182s Lightsaber slicing not presented (you get the idea).
> "We've replaced pair programming with mob designing. We've removed the elitist pattern of programmers being the only ones that get to design. It's why we use @EventModeling to build using a blueprint and navigate using a map."
The event sourcing [ES] approach taken is to diagram parts of the system into left-to-right data and time flows using event modeling [EM], then break the work down into vertical slices. Slices that a programmer can own and implement. Giving management a tool to surface requirements and giving architects the big picture to see conflicts. Allowing for a transition from PC-era SQL databases to event-soured business objects for blue-green deployments page
Tooling: - Miro a collaborative wall shared the teamwork page (click to view workshop tutorial page ). - oNote (orange notes) replaces 3M sticky notes page - EventstoreDB a stream database built for Event Sourcing page (we learned, you can get started with EM using OracleDB).
Observations: - Event modeling slices allow us to implement microservices with observable inputs and outputs. As the left to right flow also deals with spinning up event-stream data, into business objects, we are replacing the relational database with events. This allows us to optimize latency for the business use-case. - Unlike a SQL database where business objects lie after business relationships. Event-driven systems have different read and write models for read-heavy and write-light, this makes all the difference in the world developing great software for CAP theorem era business applications (events deal with time). - Many packaged software vendors by sticking with a single SQL relational database have missed how eCommerce needs to model time. Consider AWS has 16 specific databases (who is growing faster?). - Remaking packaged software for the cloud-era with SaaS built to enable customization is an overlooked domain. Imagine event-driven slices under customer control... - Collections, how to handle snapshots attracted many questions. e.g. There are items in 10 collections rather than just one item. Handled by creating views to check through collections for uniqueness, maximums, or other rules (in pre-SQL databases we handled in views and code). - Imagine clickable SVG plugins to link oNote to Miro to Git. Signature Plugin for signing off slices of work, managers, and devs would love the visibility. (Federated Wiki plugins ). - Postgrad research on our team worked at reverse engineering on-premises codebases (not much success). Event-driven could be more successful and maybe essential as systems become more granular and larger (machine learning / AI...).
Time Tracking System
Continuing: Adam continues to run the Event-Driven Meetup which meets ad-hoc on Tuesdays and Fridays at 10:30A pacific page (also CEO and working on a book).
Recommendation: Adaptech holds workshops and teaches others too. Without reservation, Adaptech is recommended for folks building great software. page
Also, see Event Storming pages