AWS EDI Services - 10 Reasons NOT to Ignore EDI in Our System Design

The event driven systems are the backbone for most of our modern day applications. It enables us to design highly flexible and decentralized systems which are robust, scalable and reliable.

AWS Event-Driven Integration Services offer a powerful and versatile solution for decoupling systems, enabling real-time responses, and simplifying complex integrations.

In this blog post will delve into top 10 features and usages that make them indispensable for our modern system design.

To start with, the diagram below shows a sample loan approval workflow designed using event driven services like Amazon Event Bridge, Amazon Step Functions, Pinpoint. The other tab list the important AWS services which we can use for building our decentralized event driven systems.



A Sample Event Driven Loan Approval Workflow

AWS Event Driven Integration Services Cheatsheet

10 Reasons for using Event Driven Integration


Features of Event Driven Integration

1. Decoupled Systems

Event-driven architectures decouple systems, allowing components to operate independently. Even though they work together, they need not have any direct dependencies on each other. The Event-Driven integration systems such as Event Bus(Kafaka/Kinesis), AWS Event Bridge, AWS StepFunction co-ordinate their interactions.

For instance, in the above loan approval flow, no system calls any other dependent or downstream systems. The coordination is handled by integration systems such as AWS EventBridge, AWS StepFunction.

This is turn enhances system resilience, allows to scale each system independently and makes the system flexible. We will look at it in more detail in up coming points.

2. Scalability and Elasticity:

Each system in an event-driven system is independent and we can scale them separately to handle the load and accommodate the spikes. For example, lets say a given Lambda services is designed to evaluate 50 documents per minute, but we intermittently get 100+ requests. We can make use of an Amazon SQS queue to accommodate such spikes and optionally integrate with an autoscaler based on the SQS queue length.

Apache Kafka or Amazon Kinesis data processing services enable us to build high volume stream processing in a similar way. They allow the consumer applications to read the incoming traffic at their own pace.

3. Fault Tolerance and Reliability

AWS message services offer at-least-once delivery guarantees, ensuring events aren't missed. Even if consuming system goes down temporarily features like at-least-once delivery guarantees, built-in retry mechanisms and dead-letter queues (DLQs) enables us to prevent data loss and reliability.


Technical Benefits

4. Supports Microservices Architectures

Event-driven communication is very useful in supporting distributed nature of the microservices architecture. It keeps their integrations clean and flexible. Services can publish events when they complete tasks or encounter specific conditions, allowing other services to react accordingly.

5. Cost Effective Serverless Applications

Trigger serverless functions in response to events, such as object uploads to Amazon S3, database changes, or messages received in Amazon SQS. This enables event-driven automation , simplifies application development and build cost effective systems using serverless pay-as-you-go pricing model.

6. Data Pipelines

Build efficient data pipelines to move data between different systems, such as databases, data warehouses, and data lakes. Utilize services like Amazon SQS and Amazon Kinesis to stream and process data in real-time.

7. IoT Applications

Handle and process data from IoT devices, such as sensors and wearables. Use services like Amazon IoT Core and Amazon Kinesis to collect, process, and analyze sensor data in real-time.

8. Offline Capabilities

Ability to communicate using messages or events enable us to build offline capabilities where applications that can continue functioning even without internet connectivity.

AWS AppSync for instance allows mobile and web applications to work seamlessly in offline mode. When offline, AppSync SDK can queries and update data on the local cache. Once the device reconnects, AppSync synchronizes local changes with the backend, ensuring data consistency.

This can enable IoT devices or apps used in remote locations (e.g., forests or oceans) collect data offline and sync it later. Medical professionals can capture patient data offline and sync records with centralized systems during brief periods of connectivity.

9. Proactive Monitoring & Event Handling

Integration through data and events makes it possible to collect and analyze logs from multiple sources. Using stream processors like Amazon Kinesis or rule based event handlers like EventBridge, we can build systems to monitor application performance, detect anomalies, gain insights and trigger automated remedial actions.


Business Benefits

10. Faster Innovation & Improved User Experience

Adding or removing systems in a an Event-Driven Design is much easier compared to the tightly coupled systems. Designing of a new system or changing of an existing system is much easier with the collaborating components being independent of each other.

With real-time data analysis, better fault-tolerance, improved response times the event driven systems provides an improved user experience.

Conclusion:

AWS Event-Driven Integration Services provide a powerful foundation for building modern, scalable, and resilient applications. By carefully considering the design and implementation of our event-driven architectures, we can harness the full potential of these services and build applications that are highly responsive, scalable, and adaptable systems for better user experience.