We are currently experiencing a profound shift in how we understand distributed systems. Organisations want to operate in real time, they want interconnected reactionary systems that drive microservices, machine learning, system accounting, and auditability and also throw in some IoT to keep things interesting. Today’s world operates under a new set of constraints and tries to solve problems that were never thought possible. Everything has changed. Underpinning this change is the need for event-driven applications. Not only to drive reactions and break down silos but more fundamentally change how we design, build and architect these systems. The common element is the event, however, it’s not to say we start emitting events and everything will be fine, but more so that we need to think about our systems in terms of events. Hence, event-first thinking changes everything.
The big question is – how do I make this a reality? How do we support existing DevOps practices and Continuous delivery commitments?
In this talk, I discuss the merits of event-first system design and how systems architecture is evolving. The journey to the event-driven architecture is not a free lunch, we need to not only commit to operating them at scale but also support the full software development lifecycle. I will cover testing practices, from unit, integration pipelines, but also touch on data quality and then patterns of adoption. It’s the patterns where we begin to understand how continuous delivery is applied and how to make it synergistically fit with existing processes, and also afford the opportunity to run systems 24×7 while supporting evolution.