MODERNIZATION
Event Driven Design
Adam Jones
Director of Engineering, PeakActivity
MODERNIZATION
Event Driven Design
Adam Jones
Director of Engineering, PeakActivity
Our hyper-connected lives move at an astonishing speed. Amazon Prime same-day delivery. Highly matrixed virtual organizations. Meme-stock frenzies. The applications that make all these things possible are continually evolving and, as a result, the data which supports them is multiplying ever exponentially.
Advantages to Event-Driven Architecture
Platforms that aren’t concerned with eventual consistency and can manage the infrastructure needed to support event-driven designs are more apt to take advantage of its benefits. Here are a few examples of why event-driven architecture can be an advantage over other architectures.
Loosely Coupled Systems
Event-driven designed systems decouple components, separating ownership of domain data. The loose coupling creates a logical separation between event producers and consumers. Producer services emit events and intentionally do not concern themselves with how the messages are consumed. While subscribing services consume events and intentionally do not concern themselves with how the message was produced, only needing to interpret the payload, you should always aim to have a strict contract between the systems.
Decoupled services can be implemented in different technologies, the right tool for the job, and can be more easily scaled independently of each other. The application or platform inherently becomes more extensible, enabling new features to be onboarded with much less risk of integration regression.
Resilience & Scalability
While resilience, defined as the capability to recover from stress on load or failures in the system, is not specific to event-driven designs, the very nature of how events are brokered offers an additional advantage. Messages that fail to be processed by a down-consuming service are persisted and can be replayed when the downed system comes back online. This is sometimes known as point-in-time recovery.
Decoupling services using event-driven design means services can independently scale to meet the demands of the platform. This can greatly reduce the cost of infrastructure ownership. Combined with the serverless model and stateless design pattern, systems can infinitely scale with little effort.
Single Source of Truth
Event Driven Solutions
The complexity of building the event aggregate component has all but been solved. There are a wide array of solutions available, such as self-managed software and cloud-based platforms. Examples of narrowly focused messaging brokers are RabbitMQ, ZeroMQ, and ActiveMQ utilizing MQTT, a lightweight pub/sub-machine-to-machine network protocol. Examples of more robust messaging systems include Apache Kafka and Apache Pulsar. While both of these examples use custom binary protocols over TCP they do support interoperability with AMQP and MQTT natively. The two most well-known managed platform offerings are, Confluent using Apache Kafka and DataStax Astra Streaming using Apache Pulsar.
Platform as a Service organizations like Amazon Web Services and Microsoft Azure offer event aggregation messaging systems as well. AWS offers Simple Notification Service (SNS) and Simple Queue Service (SQS), and Azure offers tools like Event Grid, Event Hubs, Service Bus, and Relay to manage and deliver event messages.
Powerful by Design
Event-driven design is an innovative approach to system design that offers efficiencies and flexibility for organizations looking to quickly address the events that matter the most to their business. Event-driven design is a powerful tool for achieving an event-driven organization where actions trigger immediate responses, increasing agility and scaling to meet customer needs.
Learn more about PeakActivity’s technology modernization services to see if they’re right for you.
Want even more educational content?
Subscribe below to get timely content delivered to your inbox,
or fill out the form below to speak to a Peakster about your next project.
DIGITAL MARKETING
Top 10 Photos of Developers Staring At Screens
DIGITAL STRATEGY
5 Ways Retailers Can Make Influencer Marketing More Influential
ECOMMERCE