Event-Driven Architecture: This Time It’s Not A Fad
Clients sometimes ask me, “Why is there so much buzz about event-driven architecture (EDA)? This isn’t a new idea.”
Indeed, it isn’t new. From complex event processing to the hardware interrupts of the UNIVAC, computers have been responding to events of some sort since the 1950s. But advances in technology and architecture have elevated the value of events above and beyond what we have seen in past generations. These trends are making event-driven architecture an important pattern that will be with us for some time.
REST Limitations Can Limit Your Business Strategy
Digital platform businesses are built by exposing digital competencies through APIs. If your business strategy is digital and your digital consists of just REST (representational state transfer), then the limitations of REST become the limitations of your business strategy. A digital business strategy must move beyond REST, and event-driven architecture is an important part of that. There are certain use cases where REST is poorly suited for the job, but event streaming does wonderfully. I expect more organizations will employ the principles of API management to event-driven architecture. API portals will expand into general integration portals that include event streams. APIs are used today as building blocks for assembling digital business products; event streams will also be used as building blocks for digital business products.
Your Data Needs To Be Fluid And Real-Time
The value of data is higher than ever before. Whereas events in the past were viewed more as a programming construct inside the monolith or as connective tissue between two apps, organizations now find tremendous value in the data transmitted by event streams. Incorporating event-driven architecture into your enterprise data strategy makes data more fluidly available in real time, accelerating your delivery agility and improving your business insights.
Microservices And Serverless Need EDA
A successful microservices implementation needs event-driven architecture for two reasons:
- First, service calls fail. This wasn’t a concern when your call stack was in the memory of one process. But microservices trade the reliability of the call stack for the chaos of the network. Relying solely on synchronous service calls means one failed service can have a massive ripple effect across your IT systems. Asynchronous delivery of events insulates a service from outages in its downstream targets. Without them, your web of microservice calls will become too fragile to be a viable system.
- Secondly, many of your monolithic apps have always been event-driven, and this needs to carry forward into your distributed apps. Think of the event keyword in C#, the event/listener class pairs in Java, or function callbacks in C. All these languages allow you to register event listeners, provided that the listener’s code is compiled into the same monolith as the event producer. As monoliths are broken up into microservices, the event producer and consumer may be in different microservices. The ability for one microservice to publish events to others is a necessity if we are to carry forward our core programming constructs into a distributed computing architecture.
Microservices aside, code deployed via serverless function as a service (FaaS) can only run in response to events. The value of FaaS can only be reaped if your applications are event-driven.
Forrester’s Guidance On Event-Driven Architecture
Event-driven architecture is crossing the chasm of tech adoption, and Forrester can help you navigate this emerging trend. Read our report “Embrace Event-Driven Architecture To Drive Agility, New Channels, And New Partnerships” for an introduction into its value when applied to enterprise strategy. If you’re already taking steps toward event-driven architecture, read “Event-Driven Architecture And Design: Five Big Mistakes And Five Best Practices” for pointers on how to move forward. Lastly, if you’re seeking a deeper dive into event-driven architectural patterns, read the report “Use Event-Driven Architecture In Your Quest For Modern Applications.”