What is an event-driven architecture (EDA) — and should you care about it?
You should if your organization has a growing need for real-time and scalable event-driven integrations in ecommerce, manufacturing, telecommunications, logistics, and other industries.
That’s according to Boomi Product Manager Owen Friedrich, who led a popular session on EDA at our Out of the World virtual conference in November.
At the session, Friedrich outlined fundamentals of the EDA model and highlighted the forthcoming Boomi Event Streams, an EDA service that builds on Boomi’s existing Atom Queue event broker technology with greater flexibility, speed, and scalability.
Friedrich was joined by Brendan Boyd, lead platform developer at Boomi customer Keeco, a home textiles supplier that has dramatically improved order processing performance with a Boomi-based EDA implemented in 2019.
“We saw a 5X to 6X improvement in performance, which allowed us to handle the additional volume brought by recent acquisitions,” Boyd says. “It’s no exaggeration to say that event-driven architecture has been saving our neck since Black Friday 2019.”
Differences Between and EDA and SOA
EDA is not a new concept, but it’s risen in popularity as organizations work to digitally transform operations to meet the demands of always-on business environments, that need to function in hyperspeed.
In an EDA, an event broker (also known as a message broker) orchestrates interactions among applications based on an event, such as an ecommerce order, a customer support inquiry, or a new employee hiring.
The system works asynchronously, meaning that services don’t need to wait for each other to continue processing data. That’s because the services are loosely coupled in a publish/subscribe pattern without mutual dependencies among source systems (event producers) and subscribing applications (event consumers).
The EDA model contrasts with service-oriented architectures. An SOA uses synchronous communications across tightly coupled systems, with dependencies across clients in an SOA environment. Performance is largely dictated by the slowest component in an SOA.
“Clients dependent on one another can make it more difficult to make changes over time,” Friedrich notes. “An SOA can also be more fragile because an outage or a performance issue in a single service can oftentimes have a cascading effect on all the other clients within your enterprise.”
According to Friedrich, agility, scalability, and resilience are the top three benefits of an EDA:
- Agility improves because IT pros can easily add or remove loosely coupled services, and reuse processes and components.
- Scalability rises as individual services can be tuned to increase overall performance and throughput, and by minimizing API calls otherwise needed.
- Resilience increases as events are persistently stored until they’re processed by consumers, eliminating the risk of cascading failures that could occur with an SOA.
EDA Is Not the Silver Bullet
For all its advantages, an EDA “is not the silver bullet,” Friedrich cautions. It’s best used to complement an existing architecture in a hybrid model. In some business use cases, applications may require instant feedback that’s practical in an SOA because of its tightly coupled nature.
“EDA is not so great for situations where the producer or publisher may need an immediate response to complete what they’re processing,” Friedrich notes. “It also becomes difficult with an EDA to see the big picture of your entire architecture since everything is so loosely coupled. This can make it challenging to understand where an event went and the subsequent downstream processes that may be impacted.”
As Friedrich explains, Boomi supports EDA patterns with its core integration solution and the Atom Queue event broker. Boomi also supports a variety of event broker technologies from partners such as Solace, Kafka, Rabbit MQ, Amazon, Active MQ, Google, and Microsoft Azure.
Boomi Event Streams, due for release in 2023, will add new ability to publish and consume events outside of Boomi, improve first in/first out message guarantees, and include new high throughput and scalability options.
Keeco Solves Growth Challenges With EDA
At Keeco, a 1,900-person global company that sells products through dozens of retail partners such as Walmart, Target, and Bed Bath & Beyond, Boyd says that growth organically and through mergers and acquisitions substantially increased transaction volumes.
That slowed down processes and complicated concurrency problems between an Oracle NetSuite ERP and Warehouse SCALE warehouse management system (WMS). Keeco was also contractually obligated to provide some of its large retail customers with invoices and advance shipment notices (ASNs) quickly, with a risk of penalty if service levels were not met.
Keeco’s IT team undertook a systems analysis in April 2019 to prepare for the annual Black Friday crush of orders, and opted to implement the Boomi Atom Queue event broker in a publish/subscribe EDA pattern. That alone boosted order processing performance by up to 6X, and allowed consolidation of six Boomi processes into one.
The team also improved performance by refactoring NetSuite scripts and Boomi processes, with a focus on profiling, optimizing, encapsulating, and decoupling where it made sense. And by taking full advantage of concurrency in NetSuite, Keeco could move a large computational workload from Boomi to NetSuite.
“As a result of these changes, we saw some really great things,” Boyd says. “The system was truly stress tested last year during COVID, Black Friday, and holiday order bursts. We had other systems fail to meet the challenge, but this one handled it exceptionally.”
In addition, decoupling processes made it easier for Keeco developers to make changes while reducing risk, Boyd says. Previously, a single process change required updates to five other processes and extensive testing to ensure nothing was broken.
Stay tuned for updates on Boomi Event Streams!