Perspectives

Meet Event-Driven Architecture in OutSystems Developer Cloud

fernando-santos
event driven architecture hero

We’re excited to introduce a way to build and scale applications on OutSystems Developer Cloud: Event-Driven Architecture.

When we first built OutSystems Developer Cloud (ODC), we had the ambitious vision of delivering a cloud-native architecture that could effortlessly scale to millions of users or transactions at the same time. Basically, we wanted every enterprise team to have Netflix-level scale and reliability, without having to engineer it themselves.

While the core elements for delivering that vision were baked into the platform on Day 1, OutSystems Event-Driven Architecture in ODC is an exciting step that takes us even further.

Before we dive into the details of what OutSystems Event-Driven Architecture includes, here’s a little backstory on what it is and why we are so excited about it.

Why event-driven architecture

The traditional method of handling events in an application involves sequencing steps in a chain of dependent activities. For example, when a user purchases an item from your ecommerce store, that event triggers an update to the user's order status, which then triggers the inventory systems, which then alerts the warehouse to begin shipping the item. And so on.

The problem? If one step in that chain becomes overwhelmed or goes offline, the experience slows to a crawl or stops, frustrating users.

Enter event-driven architecture. It emerged a few years ago as the industry-standard for all high-scale use cases and applications that operate in real-time or require concurrent processing. Rather than responding synchronously to sequential updates, event-driven architecture asynchronously responds to events. This provides the structure that can support the need for responsive, scalable, highly performant apps for streaming, credit card transaction processing, dynamic and geospatial advertising, ecommerce, public transportation, and more.

OutSystems Event-Driven Architecture relies on full automation between producer and consumer services to enable developers and apps to react in real-time to changes. This loosely-coupled approach makes your systems more flexible and more scalable, enabling them to handle even the busiest shopping, banking, production, or shipping days of the year.

The best use cases for OutSystems Event-Driven Architecture

OutSystems Event-Driven Architecture is like a digital mason, laying the groundwork for dynamic event-based applications that are loosely coupled, easily extensible, and scalable. Here are some examples of where it’s most useful.

IoT integration

OutSystems Event-Driven Architecture is ideal for IoT applications. Asynchronous communication, event-based triggering, and fault tolerance deliver the flexibility and extensibility needed for evolving IoT requirements. As a result, users experience much lower latency, there is simplified device management, and your applications can adapt more quickly to changing IoT data needs. For example, OutSystems Event-Driven Architecture empowers the delivery of applications and systems that:

  • Provide automatic real-time equipment maintenance, such as detecting anomalies or failures and then initating maintenance procedures or alerting operators.
  • Support smart building solutions by enabling real-time heating, lighting, and security system controls and sending notifications to owners and operators.
  • Use sensors in agricultural fields to track soil moisture, weather conditions, and crop health and deliver up-to-the minute insights to inform irrigation, planting, and harvesting decisions.
  • Analyze traffic conditions, pedestrian flow, and public transport status data to optimize traffic lights, manage congestion, and improve public transport scheduling.

Real-time monitoring and alerting

OutSystems Event-Driven Architecture enables immediate reaction to events as they occur, so it’s an excellent fit for real-time monitoring and alerting use cases. When a sensor reading exceeds a threshold or a system anomaly is detected, your applications process and analyze the event instantly, triggering real-time alerts or notifications. Here are some examples of apps that can benefit from OutSystems Event-Driven Architecture:

  • E-commerce platforms can immediately respond to potential issues like traffic spikes.
  • Cybersecurity solutions can detect suspicious activity, send alerts, and provide contextual analysis for more accurate threat prioritization, mitigation, and analysis.
  • Supply chain software can identify and respond to disruptions in real-time, facilitating quick rerouting to maintain steady flow and minimize downtime.

Simultaneous data processing

OutSystems Event-Driven Architecture also supports applications that must process massive amounts of big data and events–often at the same time. Multitasking enables it to ensure that when numerous operations are performed simultaneously, none are blocked or delayed unnecessarily. Concurrent event processing ensures that your apps don’t need to stop and wait for a task to complete before moving on to the next one. Some of the applications you can build include:

  • Recommendation engines in ecommerce and streaming applications that must serve thousands of personalized suggestions for what to buy or watch next–in real-time.
  • Ecommerce or banking applications that must process multiple payment requests simultaneously even on days of high activity.
  • Digital twins and other simulation applications that must process massive amounts of big data from multiple sources at the same time to render product prototypes and redesigns.

How it works

Now that you understand the use cases for OutSystems Event-Driven Architecture, let’s go under the hood to understand some of its key features and capabilities.

Pub/Sub (Publish/Subscribe)

Pub/Sub is a communication pattern where components act as publishers or subscribers of events, and it is the core mechanism enabling OutSystems Event-Driven Architecture. Effectively, this setup removes the need for direct communication, unlike traditional systems where each step waits for the previous one.

Event streaming

Event streaming is the process by which information, spurred by a defined trigger, moves toward its destination. It's the information from producer services organized into an event queue, ready to be picked up and used by subscriber services or components.

Integration with event message brokers

Brokers are the “middlemen” or project managers for component communications. OutSystems offers its own broker with event-driven architecture. For more advanced tech setups with brokers already in place, seamless integration with solutions like RabbitMQ, Kafka, or Redis, to name a few, can also be possible.

Centralized event ingestion, filtering, and pushing

Event brokers need to receive and convey information, and this is where event ingestion, filtering, and pushing comes in. The broker manages these diverse streams, ensuring each event is filtered, routed correctly, and then pushed to its destination, where the subscriber service awaits.

Make Event-Driven Architecture a reality with OutSystems

Ready to take advantage of this capability in ODC? Learn more about OutSystems Event-Driven Architecture today.