Middleware and EDA (Event-Driven Architecture)

Table of Content

    With enterprises using multitude of applications and the increasing need for them to share data with each other, the need for API Integration is more than ever before. This ever increasing need got us exploring more about Middleware and EDA (Event Driven Architecture). In our previous blogposts, we spoke about API Integration and the design first approach. This one will be a focal point on Middleware platforms and their roles in hyperautomation, along with the pros and cons of EDA. 

    What is Middleware?

    Middleware is software that gives common services and capabilities to applications outside of what’s offered by the OS. It handles multiple aspects like data management, application services, messaging, authentication, and API management. It is often referred to as the glue holding the various applications together.

    Middleware can be available in many locations; however, organizations and developers need to make a specific use of middleware to build applications effectively. Organizations that use multi-cloud and containerised environments will often use middleware as a more cost-effective way to develop and scale applications.

    What is EDA (Event Driven Architecture)?

    The event-driven architecture is a design pattern during which application data is defined as a stream of events. This streaming of knowledge uses various mechanisms like message queues, enterprise service bus (ESB), most up-to-date being Apache Kafka. Event-driven architecture (EDA) is a software design pattern that permits a corporation to detect “events” or important business moments (such as a transaction, visit, handcart abandonment, etc.) and act on them in real time or near real time. This pattern replaces the traditional “request/response” architecture where services would have to wait for a reply before they could move onto the next task. The flow of event-driven architecture is travel by events and it's designed to reply to them or perform certain action(s) in response to an occasion.

    Event-driven architectures can create, examine, absorb, and react to events. The most usual concepts in EDA include publishers, subscribers, sources, and sinks. The publisher is the component that captures the event data and stores it in a repository. The subscriber can then consume and react to the event. Sources are where the information originates, and sinks are destinations where subscribers send data.

    With scalable EDAs, you can create and answer any number of events in real time or near real-time. EDAs are especially suited for loosely coupled software, like microservices. EDAs are versatile and hence work well with unpredictable, non-linear events.

    With the advent of a variety of computing approaches such as big data, serverless, microservice architecture, event-driven architecture, and more. Big platforms like Netflix and its contemporaries are using these approaches for an enhanced interface. 

    Pros and Cons of EDA

    Pros

    • Loose coupling and non blocking.

    • Easily scalable.

    • Designed for better error handling and retry mechanisms.

    • Near real time communication.

    Security

    • Inter-cloud communication is secured typically by creating VPC endpoints.

    • Message security for data in transit is managed typically using SSL and data at rest is managed by using encryption before storing on the disk.

    Cons

    • Single point of failure for communication between micro application.

     

    Mitigation for the Cons

    • Use a managed queue service from a leading cloud provider like AWS.

    • Use durable queues. 

    • Use clustered queue setup.

     

    Here are a few diagrams to understand EDA better:

     

     

    Parting thoughts:

    If you found this blogpost helpful in terms of understanding more about Middleware platforms and EDA, stay tuned for our next one is a detailed analysis of events and their processing styles. Feel free to get in touch with us if you are interested in our services or wish to know more. 

    Topics: API Integration