Enterprise application landscapes consist of inter-connected and inter-related applications. The world of application integrations has been constantly evolving over several years. Over time, we’ve observed a trend towards more modular and data model-focused integration components, and an increased emphasis on real-time processing. Beginning with EJBs in the 90s, progressing to Webservices and Service-Oriented Architecture (SOA) in the early 2000s, and finally evolving to domain-specific microservices, we are seeing a continual progression towards more efficient and effective integration solutions.
As businesses integrate into the real world and approach consumers, the connections and interactions between these apps and businesses become increasingly complex, leading to issues such as component unavailability, scaling difficulties, and tight coupling.
In addition to API implementation and maintenance challenges, businesses face another issue: responding to and adapting to changes in their operating environment. With the rapid advancement of technology and widespread Internet access, consumers now expect quick responses from enterprises. These changes in business, real-life, and technology systems can be seen as events.
An event is essentially a significant occurrence that triggers processing within a system. Events can be classified into:
While these events are generated organically, they must be captured, interpreted, and processed in a well-organized and designed manner to make sure that they are efficiently utilized.
A Gartner study demonstrates that the value from data and events increases with the speed of their usage.
Source: Gartner “Stream Processing: The New Data Processing Paradigm” 9 April 2019, Sumit Pal
Businesses and architects need to process data and events efficiently to maximize their value. This has resulted in the widespread adoption of event-driven architecture across various industries.
Talking about modern application architecture, microservices stand out. Most contemporary APIs are designed as microservices, which are a collection of loosely connected services providing business capabilities. This microservice architecture allows for seamless delivery/deployment of large and complex systems. Although various architectural styles like GraphQL, gRPC, etc. exist for developing microservices, the preferred choice for most developers and architects is REST (representational state transfer).
A well-designed microservice should have the following architectural features:
However, REST-based microservices may not fully meet these expectations and face challenges such as:
Synchronous microservice limitations can be overcome through asynchronous interaction, event-driven architecture, and event-enabling traditional microservices. Taking advantage of the constant flow of business and technical events by acting on them promptly.
As awareness of the importance of events and event-driven architecture grows, architects and developers are exploring ways to integrate events into microservices. However, successful adoption also requires a change in mindset and approach from business stakeholders, product owners, and architects. This shift involves moving from a data-centric approach to one that uses events to drive business decisions and logic. Full event-native adoption is necessary to fully leverage the benefits of events throughout the various stages of the business.
Source: Gartner Symposium Presentation “Strategic Trends in Application Platforms and Architecture”, Yefim Natis, November 2022
Modern APIs are predominantly based on microservices, but events and event-driven architecture are becoming increasingly important. The future of APIs lies in combining the strengths of APIs and event-driven architecture to create event-driven APIs.
This prompts the question, what exactly are event API products? Similar in idea to regular API products, the distinguishing factor is that event API products utilize real-time data instead of stored data. REST APIs are effective for basic request-reply commands aimed at a single consumer, whereas event-driven APIs are ideal for disseminating time-sensitive information to multiple recipients.
Event-driven APIs deliver the following benefits:
Having discussed event-driven APIs and their benefits, the next step is to explore how to design them. As with any complex system, a well-planned process is essential to create a digital value chain.
At Solace we have a 5-step process to achieve this:
To improve a system, it is necessary to understand what exists currently. Thus, the first step is a discovery process to identify and document all relevant events. This includes analyzing IT landscape, applications, and business processes to uncover:
After discovering and cataloging all events, they must be evaluated for their potential value and usability. While large enterprises may generate a large number of events, it is important to categorize them as business, system, or technical events.
This classification helps to determine the actionable value and worthiness of exposing these events across the enterprise through event streams. Making event streams more accessible and widespread throughout the organization can improve integrated systems and increase synchronization among different parts of the organization.
After identifying high-value events, the next step is to bundle them into a cohesive event API product. By focusing on a problem statement, different events can be combined and processed in a flexible way to deliver business value.
As with any API product, it should be easy to:
Here are a few steps to release the event API product:
As with any product, there is always scope to improve, processes that change, new use cases that are identified. Managing the lifecycle of your event API product to keep up with these changes is crucial to finding and maintaining success.
Transitioning from synchronous to event-driven APIs modernizes the enterprise and unlocks real-time events and information for developers, architects, product owners, and business stakeholders. This evolution positions the enterprise to react quickly and effectively to the fast-paced world.