To deliver the real-time experiences that users need today, enterprises must implement an event-driven architecture (EDA) system.
Organizations are beginning to realize the value of live audience engagement. In particular, live streaming – the delivery of video content to many users simultaneously over the Internet in real time – is taking off. The live streaming industry is expected to grow from $70.5 billion in 2022 to $330.5 billion by 2030.
Live streaming offers a great way to connect with audiences authentically through shared live experiences. Organizations have primarily used blogs and social media to spread their messages. With live streaming, they get closer to their customers and get instant feedback, which helps build brand affinity. Meanwhile, customers love connecting with organizations during live streams – through interactive features like chat, emoji reactions, polls, Q&As, quizzes and gamification – because they value the possibility to share their opinions with the company. Over 80% of people would rather watch a live video than read a blog post.
As more and more organizations attempt to interact with their audience in real time, it is important to implement the right technology architecture. To meet audience demands, engagement must be immediate and based on real-time, low-latency communication. Engineering teams should consider an event-driven architecture (EDA) to build such functionality.
See also: How Events and APIs Enable Modern Real-Time Applications
EDA: Foundation for Public Engagement
The EDA is designed to handle data that needs to be processed quickly to help deliver a positive user experience, meeting the demands of today’s audience engagement. With EDA, a system does not need to constantly poll for event changes, as it notifies application code when an event of interest occurs.
EDA is often based on a publish-and-subscribe (pub/sub) model that supports popular audience engagement features. An event publisher sends messages when a state change occurs, such as chat message delivery, and a subscriber receives them. Typically, a dedicated broker sits between a publisher and subscribers, and the broker sends high-volume notifications to consumers on many different devices. A broker also logs events. Consumers can access the event stream at any time, where they can read the most recent message or process a series of messages since the last time they viewed the stream.
Technical challenges of building a real-time architecture
Building a real-time EDA is complex as there are challenges to overcome with message integrity, performance, availability, and reliability. Let’s discuss these challenges and what needs to be considered to be successful.
Message integrity
In an EDA, lost, duplicate, or out-of-order messages can lead to a poor user experience. Although users encounter unstable connections, they do not think that losing messages while their connection is down is acceptable. Once reconnected, they expect the app to send all missed messages without duplicating those already processed. EDA must use at least one delivery. This is when a broker asks a consumer to acknowledge receipt of the message received. It will resend the message if it does not receive a response from the consumer.
However, if the consumer received the message but the acknowledgment was lost, all recent messages are now duplicates of the original. To make message duplication acceptable, an EDA should use idempotent messages that can be processed multiple times without changing the system after the first time. An EDA can also use a unique processing guarantee to identify and remove duplicate messages. To manage out-of-service messages, a typical approach is for an EDA to use unique identifiers to order messages.
Performance
Network performance is critical to successful audience engagement. The quality of a live stream will be substandard if there is high latency, i.e. the time it takes for the data to reach its destination. And it’s increasingly important to consider performance if an organization has a global audience or hosts users in areas with poor internet infrastructure.
Organizations should keep data as close to users as possible to achieve low latency when building an EDA through managed data centers and edge acceleration points. However, it is not enough to reduce latency. The latency variance or offset should also be low to ensure predictability. There is also a correlation between server performance (processing speed, hardware used, available RAM) and latency. Organizations need to increase server layer capacity and reallocate load to avoid congested network and server overflow.
Availablity
A real-time EDA must be highly available to handle the influx of data from a flood of high-volume engagements on the network. When engaging an audience via live streaming, it is difficult to plan and provide sufficient system capacity because audience size is unpredictable. If the system runs out of capacity, there will be queue delays, bottlenecks, network congestion, and instability.
Under heavy load, organizations must do more than implement a failover situation to meet availability requirements. They have to manage capacity. They must scale to quickly handle millions of connections without pre-provisioning. To ensure that a network can meet this demand, organizations must monitor the following parameters: the overall percentage of operating load, the elasticity and distribution of this load, as well as the maximum number of connections and the debit.
If a load exceeds the thresholds, organizations should put steps in place to automatically add more capacity. Organizations can also optimize network load by minimizing the amount of data transferred. They can reduce message size by sending only data changes instead of entire payloads.
Reliability
Reliability is essential. An organization will suffer reputational damage if its live stream stops working. A real-time EDA for audience engagement should continue to function even if a component fails.
To be fault-tolerant, organizations must have multiple components that can maintain the system in the event that some components are lost. When one or more components fail, the remaining components must support the service independently. Organizations need to understand how many regional failures can be tolerated. If one region disconnects with a failover to another, there must be enough capacity to handle the additional traffic, even under peak load. Redundancy ensures continuity of service despite infrastructure failures.
Respond to demand for public engagement in real time
Live audience engagement is exploding as organizations drive users to events on an unprecedented scale. To deliver those real-time experiences that users crave, companies need to implement an EDA system. While they may create a custom EDA system to initially launch a service, as they scale they will face technical challenges of message integrity, performance, availability, and reliability. To avoid these issues, they should turn to a third party to create a basic EDA system, allowing them to focus their time on developing audience engagement features that will delight their users.
#Overcoming #challenges #building #realtime #architecture #audience #engagement #RTInsights