Event subscribers are configured through programmatic approaches and configuration settings that define how subscribers listen to and respond to events. Configuration varies depending on the specific technology stack, framework, or messaging platform being used — events configured in Drupal, Symfony, or Microsoft Dynamics 365 Business Central will use different types of objects and parameters to request events and validate event data.
In event-driven architecture (EDA), an event subscriber is an application, service, device, or person that elects to receive information about a specific event or class of events. Also known as “event consumers,” event subscribers receive messages about events by “listening” to and continuously polling for any changes related to certain event topics, areas, or messages. When an event subscriber receives information about an event, it may process and respond to the information in various ways, which may include updating a database, sending an email, adding an object to a storage bucket, or prompting a workflow.
What is event-driven architecture?
Event-driven architecture (EDA) is a software design pattern that allows systems to detect, process, orchestrate, and react to real-time events as they occur. An event is a change in the state of any particular business system or business process. In event-driven architecture, event subscribers can learn about an event the second it occurs, enabling apps, systems, people, and organizations to react in real time. This architecture often utilizes namespaces to organize event classes and event subscriber methods, ensuring a clean and maintainable codebase.
What is an event?
An event is something that happened. It is a change in state. Events include things like a customer purchase, a request for information, inventory updates, sensor readings that may indicate a security breach, an item removed from a shopping cart, creation of a new user account, or a notification of stock prices reaching a certain threshold.
How does an event subscriber function in event-driven architecture?
Event-driven architecture comprises several hardware and software components that are connected and arranged to enable real-time communication about events.
Event publishers, also known as event producers, are systems that detect or generate an event and publish the information to an event bus or channel. Event publishers are designed to recognize when a state changes. Event publishers include systems like databases that publish events when data changes, microservices that indicate the completion of actions, Internet of Things (IoT) devices that signal when actions have occurred or conditions have changed, and CRM systems that send notifications when orders are fulfilled or new users have registered.
Event buses, also known as event channels or event brokers, are where information about events is loaded and offloaded. Event buses ingest data in real time from event publishers and make information available to event subscribers that are listening for specific events. Event buses are also known as event streams or message queues and include platforms like Apache Kafka, Amazon Kinesis, and Google Pub/Sub.
Event subscribers, also known as event listeners or event consumers, are applications, services, devices, or people that receive messages about events. Different subscriber classes are designed to receive information about specific events or event classes. Event subscribers are typically configured to receive event data as soon as it is available.
How do event subscribers benefit organizations?
Events impact every aspect of an organization and its processes and operations. When businesses and their people, applications, and systems can react to events with greater speed, they can increase productivity, enhance efficiency, and improve competitiveness. By configuring event subscribers to receive information about a broad range of business-critical events, organizations can operate more effectively and successfully.
How do event subscribers ingest and process events?
Event subscribers receive, process, and respond to events in a variety of ways.
- Direct notification: In some cases, event publishers send or push events directly to subscribers without the use of an event bus or broker.
- Pull model: Subscribers may also elect to periodically check or pull for new events from a queue they are interested in, which allows for batch processing and load balancing. However, this model may introduce delays in event processing.
- Pub/sub: In a publish/subscribe infrastructure, messaging is sent to event consumers that have subscribed to specific event channels through a message broker. Brokers receive event messages, translate them when necessary, keep messages organized, push messages to subscribers for consumption, and delete messages. In this model, events can’t be replayed, so event subscribers cannot retroactively access events.
- Event streaming: With an event streaming approach, events are written to a log — and all event subscribers can access events from any part of the stream, including past events. Event streaming is typically handled by a streaming platform that can manage logging and transmission of massive volumes of events at very high throughput, often as much as trillions of events per day. Streaming platforms enable event persistence, in which records are retained for a specific amount of time. Streaming platforms also manage complex event processing, in which event subscribers consume and process a series of events to identify trends or specific conditions.
What type of events do event subscribers consume?
An event subscriber can consume a wide variety of events that range from very simple to highly complex. These may include:
- Business transactions: These events are related to business processes such as a customer registering online, placing an order, completing a payment, or changing an order status.
- User actions: Generated by users with an application or system, these actions include clicks, form submissions, login/logout activities, or page navigation.
- Notifications: Certain events are generated to notify other parts of the system or external systems and may include actions such as sending an email, triggering alerts, or generating reports.
- System events: These events occur within the system and are triggered by things like completion of a process, updates to data, system errors, or the start of scheduled tasks.
- Sensor inputs: In IoT applications, events may be generated by sensor data related to things like temperature changes, motion detection, or location updates.
- Data feeds: These events originate from data updates, such as changes in a database, new entries in a log file, or updates from external data sources like APIs or feeds.
- Stream processing: Processing of real-time data streams may generate events related to monitoring stock prices, analyzing social media posts, or tracking real-time analytics.
- State changes: Some events are generated by changes in the state of objects or entities within the system — for instance, changing an order from “pending” to “shipped,” or updating the status of a ticket in a tracking system.
- Lifecycle events: These events concern the lifecycle of components within the system, such as the startup or shutdown of services, deployment of new versions, or health checks.
- Integration events: Interactions between different systems or services may generate events that can be used to synchronize data or trigger actions across system boundaries.
Frequently Asked Questions (FAQ)
These terms are often used interchangeably when talking about event-driven architecture, though some draw nuanced distinctions. In general, an event consumer is a broader term that references any component, system, or service that consumes and processes events. The term “event subscriber” is more commonly used when talking about messaging systems and event brokers, while “event listener” is more often used in the context of programming and software development where callbacks are registered.
Event names are identifiers used within event-driven systems to categorize and trigger specific actions or responses when events occur. They play a crucial role in event-driven architecture by allowing event publishers to label events so that event subscribers or listeners can understand and react to them appropriately.
Why customers choose Akamai
Akamai is the cybersecurity and cloud computing company that powers and protects business online. Our market-leading security solutions, superior threat intelligence, and global operations team provide defense in depth to safeguard enterprise data and applications everywhere. Akamai’s full-stack cloud computing solutions deliver performance and affordability on the world’s most distributed platform. Global enterprises trust Akamai to provide the industry-leading reliability, scale, and expertise they need to grow their business with confidence.