Reactive Systems Analysis and Design for Business

Reactive, event-driven systems have tremendous business value compared to the heritage architectures of a decade ago, which is why this modern style of software architecture is being adopted by enterprises across the globe.

Designing a modern distributed system is a vastly different experience than designing the monolithic heritage applications of yesterday. This program covers the core skills required to analyze and design event-driven systems using the basics of Event Storming and Domain-Driven Design. It is non-technical and suitable for developers, architects, and business stakeholders.

Program Overview

Participants will gain an insight into the value of implementing business systems as a collection of discrete, event-centric processes, focused purely around the flow and language of the existing business processes in the organization.

This program is focused on the analysis and design of event-driven systems by first learning how to discuss and refine business processes as flows of events. Participants will learn the basics of how to model event flows using core techniques from Event Storming, along with the basics of Domain-Driven Design. By the end of this hands-on workshop, all participants will use the concepts introduced to build models that can be leveraged by technical teams to build production-grade event-driven systems.

As this program is delivered as a workshop and requires hands-on participation, the program requires attendance from three key disciplines in your organization:

  • Business domain experts
  • Architects
  • Developers

We strongly encourage that a diverse group of professionals from your organization attend together, with a mixture of seniority and skill levels across technical and business domains.

What to expect

This is a 2 day hands-on workshop with a strong emphasis on participation.

  • All participants will gain the skills required to model event-driven business process flows by sharing a single language and approach between business and technical teams during analysis and design
  • Business stakeholders will learn how to effectively communicate business intent by modeling processes as event flows that are easily transformed into technical models by architects and developers
  • Technical talent will learn how to approach architecture from a business-first perspective by focusing on the intent of the business from the beginning of analysis and modeling

Format

On day one we will introduce the key concepts of event-driven systems and how to model such systems:

  • An introduction to events
    • The basics of events and event-driven systems
    • The four pillars of “reactive” in a systems context – responsiveness, resilience, elasticity, and asynchronous boundaries
    • How do event-driven systems and reactive systems relate?
  • Why build reactive, event-driven systems?
    • The basics of evolutionary architectures, and how systems can be designed to respond rapidly to feature requests from business stakeholders
    • Case studies of successful event-driven implementations across a variety of industries
  • The organizational impact of event-first analysis, design, and implementation
    • What organizational changes, such as team restructuring, typically takes place in event-centric organizations?
  • Event Storming as the lingua franca of event-driven organizations
    • What is Event Storming?
    • An introduction to commands, events, and reactions
    • How and why to model business processes as flows of events along a linear time-line

We will continue the program on day one with a hands-on workshop and model a real business process within your organization:

  • Hands-on workshop
    • Set up the modeling surface
    • Begin to model a single business process as a series of events
    • Examine the events and determine the commands that cause those events
    • Examine the events and determine any reactions that occur after each event
    • Refine and optimize the flow
    • Explore “sad-path” scenarios, such failures during execution of the business process, and discuss how to react appropriately
  • Retrospective
    • Regroup as a team to discuss any insights or challenges that emerged from the modeling session

On day two we will recap our efforts from day one and tailor our agenda to the interests of the participants.

Some of the topics that we will likely explore in more detail:

  • How to structure event flows
    • An introduction to Domain-Driven Design as the lingua franca of enterprise systems organization and integration
    • An introduction to aggregates, bounded contexts, and context maps, to help map events into a natural structure for the organization
    • How to create a ubiquitous language within each contextual boundary to assist in communication within and across organizational boundaries
  • Creating an event catalog
    • An introduction to event catalogs
    • Diving deeper into domain events and aggregate events
    • An introduction to schemas and registries
  • Hands-on workshop
    • Model a second business process
    • Structure the processes into multiple bounded contexts
    • Explore the language and contracts between each bounded context
  • Retrospective
    • Discuss how domain events from both processes can be used for broad-scope enterprise integration
    • Review all models as a group
    • Share our learnings, challenges, and future goals

Prerequisites

No previous experience with programming or event-driven systems analysis is required. This is a suitable program for any stakeholder involved in a modern software project to learn the basics of how to think about events as the focus of business process flows.

Contact Us To Discuss Training Contact Us