Adam Dymirtuk, CEO of AdaptDeck Group and an authority on event-driven systems, dives into the transformative potential of Event Modeling. He explains how thinking in terms of business workflows and event sourcing can revolutionize application development. By treating data changes as new entries, developers can create clear, maintainable applications. Dymirtuk also emphasizes the importance of collaboration and immutability in this approach, and how adopting these models can lead to greater productivity and flexibility in software development.
Event modeling transforms abstract software discussions into visual workflows, facilitating collaboration among technical and non-technical stakeholders.
Event sourcing emphasizes immutability by storing application states as a sequence of events, enabling easier auditing and scalability of complex systems.
The integration of AI technologies with event modeling enhances development efficiency by automating code generation and quality assurance processes.
Deep dives
Event Sourcing and Its Historical Context
Event sourcing is an architectural pattern that stores the state of an application as a sequence of events rather than just the current state. This method traces back to ancient practices of record-keeping, emphasizing the importance of immutability, as seen in fields like accounting where records cannot be altered. This approach allows developers to understand the entirety of a system's evolution, as each stored event serves as a snapshot in time, akin to a time machine. By capturing the intent and outcome of each user action, event sourcing enables easy scalability and auditability within complex systems.
The Benefits of Event Modeling
Event modeling provides a collaborative framework for understanding and designing systems by visualizing workflows in a storyboard format. This technique allows stakeholders, including both technical and non-technical individuals, to engage in the design process effectively by identifying key events and their sequences. It transforms the often abstract discussions around software functionality into tangible diagrams that represent how systems operate from a user perspective. By utilizing this storyboard approach, teams can quickly align on project requirements, ensuring that every aspect of the design meets business needs.
Facilitating Collaboration Across Teams
One major advantage of event modeling is its ability to break down silos between developers and business stakeholders, fostering a collaborative environment. By visualizing workflows, event modeling makes it easier for diverse teams to understand the requirements and design specifications without requiring deep technical knowledge. This inclusive approach helps create a shared understanding of the system, enabling effective communication and preventing misunderstandings. Event modeling's clarity facilitates discussions on system requirements, allowing teams to address challenges collectively without resorting to complex jargon.
Integrating AI with Event Modeling
The advent of AI technologies has enhanced the effectiveness of event modeling by automating aspects of code generation and quality assurance. By specifying requirements in a structured, story-like manner, models serve as a strong foundation for AI tools to generate accurate tests and identify potential issues. These AI capabilities not only streamline the coding process but also reduce the cognitive load on developers, allowing for quicker validation of features. This integration positions event modeling as a dynamic approach, aligning well with modern development practices that leverage AI for efficiency.
The Evolution of Software Development Practices
The discussion around event sourcing and event modeling reflects a broader evolution in software development methodologies, transitioning from waterfall approaches to agile frameworks. Emphasizing collaboration and adaptable designs, these practices aim to combine the best of both worlds: structured planning and responsive iteration. The historical context of earlier methodologies, such as UML and Windows Workflow Foundation, illustrates the industry's ongoing pursuit of systems that are both human-friendly and effective. As teams strive to build scalable systems, integrating these methodologies enables them to do so in a way that drives both efficiency and clarity.
How can event modeling help you build better applications? Carl and Richard talk to Adam Dymitruk about Event Sourcing and Event Modeling, including the new book Understanding Eventsourcing. Adam talks about thinking through business workflows as an approach to event sourcing, where new data is constantly added, never modified. These data streams can then be modeled into different workflows following consistent patterns that make your application straightforward to build and maintain. It does take effort to change your thinking to the event source/model approach but with huge potential!
Get the Snipd podcast app
Unlock the knowledge in podcasts with the podcast player of the future.
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode
Save any moment
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Share & Export
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode