James Urquhart’s “Flow Architectures: The Future of Streaming and Event-Driven Integration” explores the evolution of software integration and its impact on economic processes. The book emphasizes the importance of flow architectures in modern distributed systems, which rely on service-oriented architecture components and event stream processing to enhance connectivity, efficiency, and innovation.
The concept of “flow” refers to the fluid, real-time communication of system states, akin to the flow of water or traffic. This real-time data exchange is crucial for driving economic activity and institutional cooperation. Urquhart argues that reducing the cost and latency of these exchanges will lead to a significant increase in integrations and economic experimentation, setting the stage for transformative innovations.
Key drivers for adopting flow architectures include improving customer experience, organizational efficiency, and fostering innovation. Lowering stream processing costs and enhancing data flow flexibility are essential enablers. The book predicts that flow will become integral to businesses, expanding the use of timely data and impacting job roles and expertise.
Urquhart utilizes Wardley Mapping and Promise Theory to illustrate the components necessary for flow systems and their evolutionary paths. These tools help identify where technological evolution or revolution is likely. The book also examines current streaming market technologies, such as service buses, message queues, and IoT protocols, which are foundational for future flow systems.
Challenges and opportunities in flow architectures include security, agility, timeliness, manageability, and intellectual property control. Urquhart discusses various flow patterns, such as the Collector, Distributor, Signal, and Facilitator patterns, highlighting their potential applications and challenges.
The book concludes with strategies for businesses to identify and model flow use cases, emphasizing an “event-first” approach to integration. It underscores the importance of preparing for the inevitable shift towards flow architectures, drawing parallels to the disruptive impact of cloud computing.
Overall, “Flow Architectures” provides a comprehensive guide to understanding and leveraging the potential of streaming and event-driven integration, positioning organizations to thrive in a hyper-connected, data-driven future.
The text discusses the transformative impact of the Internet Event Flow Suite (IEFS) over a decade, highlighting its influence across various industries. Introduced by the Cloud Native Computing Foundation (CNCF) and the World Wide Web Consortium (W3C), IEFS includes the Event Metadata Protocol (EMP) and Event Subscription Interface (ESI), which have standardized event-driven data flows.
Finance: The financial sector quickly adopted IEFS, enabling real-time budget management and central banking reporting. This led to the US government’s Real-Time Economy (RTE) initiative, providing daily economic data updates. The equities markets benefited from reduced data processing costs, fostering hobbyist trading and new financial services leveraging AI, though not all ventures succeeded.
Retail: IEFS improved real-time inventory management, allowing seamless data exchange across supply chains. Companies like SAP, Amazon, and Microsoft standardized these processes, while startups like RentAll thrived without owning assets. Mobile assistants enhanced in-store shopping experiences, and online grocery stores optimized home delivery using real-time data.
Transportation: IEFS accelerated innovations in transportation, with Tesla using it for battery management and self-charging technologies. This led to widespread adoption by other manufacturers and a surge in charging infrastructure. The logistics industry also benefited, with companies like LoadLeader optimizing cargo space utilization, resulting in new shipping services.
Health Care: Initially used for fitness tracking, IEFS enabled comprehensive health monitoring through partnerships like Kaiser Permanente and Epic. Patients gained control over personal health records, integrating additional data streams for detailed health analyses. Hospitals automated triage and supply management, while pharmaceutical companies improved drug efficacy monitoring, reducing fatalities.
Data Services: IEFS facilitated numerous real-time data streams across various sectors. Examples include the National Weather Service’s WeatherFlow, which provides up-to-the-minute global weather updates by integrating data from millions of sensors. This infrastructure underscores the growing importance of real-time data sharing in critical national functions.
Overall, IEFS has driven significant advancements in automation, efficiency, and data accessibility, reshaping industries and enhancing consumer experiences.
The architecture behind WeatherFlow enables rapid expansion of analysis centers, supporting industries like transportation and logistics affected by weather disruptions. Major air traffic systems use WeatherFlow for efficient routing, while consumer businesses leverage it for innovative applications, such as LiveTime Games’ Global Sleuth, which replicates real-time climatic conditions.
The World Wide Flow (WWF) has transformed industries, though it has also posed challenges. The integration of machine learning and artificial intelligence has automated clerical work, contributing to job losses and the 2026 recession. Governments have attempted to address this by promoting skill development for entrepreneurship, resulting in a rise of “flowtrepreneurs,” though income inequality persists.
Security concerns are notable, with early “man-in-the-middle” attacks on IEFS applications leading to the development of data provenance technologies by ProviCorp and stronger authentication protocols. Despite improvements, international espionage scandals persist. The adoption of IEFS by social media platforms like Twitter has democratized content but also monetized data through advertising.
The WWF has also been exploited for illegal activities, such as a network of illicit pornography streams, prompting law enforcement to develop specialized technology teams for detection and prosecution. Government policies have evolved, with debates on tax systems reflecting the ease of tracking digital transactions through the WWF.
Looking ahead, the WWF is expected to continue evolving, influencing technologies like self-driving cars and smart infrastructure. Network providers face challenges in supporting increasing data volumes, with discussions on tiered traffic pricing and network neutrality ongoing. Innovation remains a driving force, with new devices, services, and space-based data sources likely to shape future developments.
The concept of “flow” is central to this evolution, defined as networked software integration that is event-driven and adaptable. Flow enables seamless data exchange across organizations, reducing costs and fostering innovation. The COVID-19 pandemic highlighted the potential of real-time data sharing for effective responses, though current systems are often fragmented.
Flow is characterized by consumers requesting data streams from producers through self-service interfaces, with producers controlling data transmission. It relies on standard network protocols, allowing consumers to receive data passively and respond to relevant signals. The interaction with data streams, or flow interaction, creates value by processing and responding to state changes.
Ultimately, flow represents a shift towards more integrated and efficient systems, promising significant impacts on business and real-time cooperation across various sectors.
The text discusses the concept of event streams in data integration, emphasizing the distinction between raw data streams and event streams. In raw data streams, data is sent without context, requiring the consumer to interpret it. Event streams, however, include contextual data, simplifying the consumer’s task of understanding the event’s nature. The focus is on event streams as they are likely to dominate cross-organizational integrations due to their clarity and efficiency.
Integration across organizational boundaries is crucial for economic evolution, enabling real-time, automated exchanges of information and value. However, current integrations often rely on batch processing and proprietary formats, which introduce delays and complexity. Real-time integration is costly and typically reserved for critical data. The text envisions a future where standardized event streams reduce costs and foster innovation, allowing developers to easily publish, find, and subscribe to streams.
For flow architectures to support evolving human interactions, they must be asynchronous, adaptable, and extensible. Consumers should connect and disconnect easily without affecting producers, necessitating a decoupled architecture. This adaptability allows new technologies to integrate seamlessly, fostering creative innovation.
Examples of fictional projects illustrate flow patterns: WeatherFlow distributes weather updates, AnyRent consolidates rental data, Real Time Economy processes economic data, and LoadLeader matches shipping supply and demand. These examples highlight the potential of fluent architectures to tie activities across domains, creating new value.
The concept of the World Wide Flow (WWF) is introduced as a global graph of flowing data, akin to the World Wide Web. The WWF democratizes activity data distribution and enables low-cost experimentation, potentially transforming automation on various scales.
Event-driven architectures (EDAs) are pivotal in this transformation, characterized by their decoupled nature, allowing producers and consumers to operate independently. EDAs facilitate real-time integration by enabling consumers to initiate connections and receive events without producers needing prior knowledge of consumers’ existence. This reduces the cost and complexity of real-time data exchange, paving the way for innovative uses of data streams.
The text contrasts composable and contextual architectures, highlighting EDA’s composable nature, which allows for flexible and evolutionary data stream construction. This approach is more efficient than traditional API models, which require continuous requests or predefined consumer-producer relationships.
In summary, the text envisions a future where standardized event streams and EDAs enable seamless, real-time integration across organizational boundaries, fostering innovation and reducing costs. This evolution promises to transform economic systems and automation, creating a global network of activity data akin to the World Wide Web.
High-frequency trading (HFT) systems rely on low-latency, direct connections to stock exchanges, using protocols like NASDAQ’s and NYSE’s FIX. These systems, which account for 10-40% of global equities trades, are hosted in exchange data centers to minimize latency and capitalize on arbitrage opportunities. Unlike self-service interfaces, HFT connections require negotiated, pre-established network setups, creating implementation friction. In contrast, Twitter’s PowerTrack API allows users to filter and access data streams more flexibly, demonstrating a flow architecture where consumers can create connections via API calls without extensive setup.
The serverless paradigm, exemplified by AWS Lambda, is shaping the future of application development. It allows developers to run code in response to events without managing servers, reducing operational toil. AWS Lambda’s integration with various AWS services through event triggers has encouraged widespread adoption, highlighting the potential of serverless models in enabling scalable, event-driven architectures.
The book discusses the inevitability of flow architectures, driven by the need for improved customer experience, operational efficiency, and innovation. Flow architectures reduce integration costs, increase flexibility, and offer more choices, prompting businesses to adopt these technologies. The text outlines the role of Wardley Mapping in understanding flow integration and anticipates the evolution of event-driven systems, emphasizing the importance of open-source solutions and cloud providers.
Future chapters will explore the drivers for flow adoption, including digital transformation’s impact on customer experience, process efficiency, and innovation. The text argues that excellent customer experiences foster loyalty, with 80% of surveyed individuals valuing experience as much as products. Flow architectures promise to enhance these experiences by enabling real-time, context-aware interactions.
Overall, the text highlights the transition from custom integrations to commoditized, event-driven systems, driven by societal and economic needs. The serverless model, with its event-driven approach, is seen as a foundational element for future flow architectures, offering low-cost, low-toil interaction with event streams.
Business buyers expect personalized and seamless experiences similar to consumer retail interactions. 82% of business buyers want this level of service, and 72% expect personalization. Organizations must share data across applications swiftly to ensure consistent customer experiences. For instance, if a customer buys a smartphone, relevant accessories should be suggested in future interactions. Inconsistent experiences can lead to lost business opportunities and diminished trust.
The need for real-time data sharing is crucial but challenging, especially when data must be shared between organizations. Many are not equipped for such integration unless there’s a significant benefit. Improved efficiency is a key motivator for organizations, driving them to adopt digital solutions. Businesses aim to enhance profit, while nonprofits seek to maximize impact, and governments strive to meet missions within budgets.
Digital business is often defined by worker productivity and data-driven process improvement. Process improvement, such as Total Quality Management and Toyota’s methods, focuses on enhancing work flow by identifying and addressing constraints. Value stream mapping is a tool used to discover bottlenecks in processes, measuring lead time (LT) and process time (PT) to identify constraints.
Event-driven integration plays a crucial role in improving data flow, impacting process constraints. Automation can eliminate LT by ensuring work is processed efficiently. Software, unlike humans, operates continuously and can prioritize tasks quickly. Rules engines and emerging AI tools are used for decision-making. Interoperability is vital for seamless data exchange between producers and consumers, reducing the cost and complexity of integration.
Automation also reduces PT by speeding up task completion. Software requires readily available data to function effectively. As business needs evolve, so must data connections and processes. Flow facilitates easier and cheaper stream integrations, supporting interoperability and allowing for agile adaptation to new data sources.
Innovation, driven by interoperability, creates value by offering better solutions to existing or new problems. It’s essential for expanding organizational boundaries and enhancing market performance. Digital transformation is often a survival tactic rather than true innovation, which involves creating new value. Flow’s interoperability fosters innovation by enabling efficient data and event stream delivery and consumption, attracting new technology solutions.
Network effects, where increased utility and interest drive further adoption, are crucial for flow’s success. Similar to the World Wide Web, flow can generate value through innovation and attract more users and technologies. This feedback loop leads to continuous growth and new opportunities. Cloud providers, like Amazon Web Services, are already offering streaming integration options, indicating the early stages of this evolution.
AWS’s EventBridge service facilitates connections to live event streams from various SaaS providers, using AWS’s serverless tools like Lambda and Kinesis. This trend is encouraging more businesses to offer streams via EventBridge and more AWS customers to adopt event-driven solutions for business challenges. The growth in stream options is driving a need for easier discovery, connection, and processing of streams, leading to the development of common abstractions and protocols. These will become vital as businesses focus on consistent customer experiences and efficiencies.
Key enablers of flow adoption include lowering stream processing costs, increasing data flow flexibility, and creating a rich market ecosystem. Lowering integration costs is crucial, as integration dominates IT budgets. The systems integration market is projected to reach $582.5 billion by 2025. High integration costs often deter potential integrations, especially with external systems. Reducing these costs can unlock numerous integration opportunities, akin to the Jevons paradox, where increased efficiency leads to higher overall consumption.
Stream processing is poised to revolutionize integration economics through standard interfaces and protocols. As costs decrease, demand for streaming technologies will rise, driven by standard tools, a larger labor pool, and economies of scale. Standardization allows developers to focus more on functional logic, fostering experimentation and innovation. This will lead to enterprise and consumer applications supporting flow for timely data delivery, integrating third-party applications, and replacing older integration methods with streaming.
Flow will also drive demand for skills to implement solutions, though it is inherently complex. As technology evolves, abstractions will simplify integration, making it accessible to more people, potentially even nontechnical users. The growth of flow will enable cost savings through economies of scale, with increased efficiencies in creating, transmitting, and receiving streaming data.
Flexibility in data flow design is essential for innovation and adaptation. Flow architectures will excel due to composability, allowing systems to adapt to changing requirements. Unlike contextual tools, which limit modifications, composable tools provide flexibility. An example is the Linux command line’s “pipe” mechanism, allowing arbitrary command sequences. Common interfaces and protocols will allow data streams to be “piped” between processing systems, enabling unanticipated processing combinations.
Interoperability will further enhance flexibility, allowing tools not explicitly designed to work together to interact predictably. This is crucial for building adaptable solutions, as it reduces toil in establishing and managing connections. Overall, the evolution of flow will mirror web technologies, becoming more accessible and driving demand for new capabilities and efficiencies in stream processing.
Interoperability is crucial for the success of modern software systems, enabling seamless data exchange between producers and consumers. This concept allows for the integration of various applications and services, such as financial data aggregation and consistent web experiences. Interoperability in data flow involves common interfaces and protocols to facilitate connections and metadata exchange, with standardized formats for common data types expected to emerge.
In industries like equities trading and healthcare, standard payload formats can simplify data exchange, reducing costs and improving efficiency. However, increased interconnectivity also brings challenges, such as security and privacy concerns, which need to be managed effectively. The economic opportunities of flow are significant, driving investment to address these challenges.
Market ecosystems can thrive around flow solutions, as seen in technology platforms where core components are complemented by third-party applications. These ecosystems enhance the value of the core product and create economic opportunities for all participants. Streaming data ecosystems, like those in equities markets, have enabled significant business growth and innovation.
For flow to deliver on its potential, it must be secure, agile, timely, manageable, and have memory capabilities. Security ensures trust in data sharing, while agility allows for adaptable connections. Timeliness is crucial for real-time data applications, and manageability ensures system observability and operability. Memory allows for state recreation and auditing.
Flow adoption will impact businesses by expanding the use of timely data, enabling real-time insights and actions. This can transform industries traditionally reliant on batch processing, such as retail and banking, by allowing for immediate data processing and decision-making. Flow networks will drive innovation and reshape organizational structures, as businesses leverage composable and interoperable architectures to enhance integration and efficiency.
Overall, flow ecosystems will play a pivotal role in economic evolution, driving both entrepreneurship and innovation across various sectors. The integration of timely data processing and composable architectures will create new business models and opportunities, fundamentally changing how organizations operate and interact.
The text discusses the concept of “flow” in business processes, drawing on ideas from Geoffrey Moore’s “Dealing with Darwin” and Geoffrey West’s “Scale.” The essence of flow is about optimizing business operations by distinguishing between “core” activities that differentiate a company and “context” activities that do not. Companies should focus on enhancing core activities while outsourcing or automating context activities to improve efficiency and competitiveness.
Flow facilitates this by enabling seamless integration and automation of processes, potentially leading to new outsourcing models. For instance, human resources could automate certain tasks but outsource others, like résumé scoring. This approach can lead to smaller business units and a shift in the types of jobs valued within companies. Traditional clerk roles, characterized by routine tasks, are increasingly being replaced by automation and AI, which can handle complex decisions and evolve over time.
The evolution of machine learning and AI, combined with flow, is expected to transform job markets by creating new expert roles and requiring a shift toward lifelong learning and adaptability. This transformation is not limited to business but extends to education and other sectors. Flow could revolutionize how skills and knowledge are tracked and represented, moving from static transcripts to dynamic, learner-centric profiles that reflect up-to-date skills and experiences.
In industries like healthcare and logistics, flow can improve efficiency by centralizing data representations and facilitating real-time tracking. This could lead to significant disruptions in existing business models, as flow enables more effective resource management and decision-making.
Geoffrey West’s concept of allometric scaling suggests that as systems grow, they optimize resource delivery, leading to nonlinear scaling of certain elements. This principle applies to businesses, where ecosystems will likely form around critical data flows, creating opportunities for companies that manage or capitalize on these flows.
The text emphasizes the need for strategic positioning in anticipation of these changes, using tools like Wardley Mapping and Promise Theory to navigate the evolving landscape. These approaches help identify opportunities and strategies to gain competitive advantages by understanding user needs and technological advancements.
Overall, the adoption of flow is portrayed as a transformative force that will reshape industries, job markets, and educational systems, driving innovation and efficiency while posing challenges related to adaptation and skill development.
The text discusses the evolution and integration of event and data streaming in modern organizations, emphasizing the concept of “flow.” It highlights the importance of fluent architectures where consumers receive data streams automatically from producers through self-service interfaces. Key properties for these architectures include security, agility, timeliness, memory, and manageability.
Security ensures data is shared only with authorized consumers. Agility allows both consumers and producers to adapt quickly. Timeliness emphasizes the need for data to be relevant when applied. Memory involves replaying streams for long-term and short-term system memory. Manageability focuses on understanding and correcting system behavior.
To navigate the complexity of flow, the text introduces two modeling techniques: Wardley Mapping and Promise Theory. Wardley Mapping helps understand the technology landscape by identifying components needed to meet user needs and evaluating their evolution. Promise Theory validates the value chain by describing how components cooperate to meet user needs, focusing on promises made between autonomous agents.
Wardley Mapping involves identifying a scope and user need, determining necessary components, and evaluating their evolutionary stages. An example is provided using a tea shop’s need for a cup of tea to illustrate mapping components to evolutionary stages.
Promise Theory, introduced by Mark Burgess, involves agents making promises about their behavior to other agents. The theory emphasizes autonomy, where agents can only promise their behavior, and the interpretation of promises can be independently assessed. Promises require reciprocal acknowledgment to result in action.
The text proposes using Promise Theory to model flow integration, identifying how components promise to deliver flow integration and validate their relationships. A flow integration value chain is built by establishing a scope, identifying users (producers and consumers), and their user need (flow integration).
The scope is defined as enabling near real-time integration between organizations through event-driven architectures. Producers and consumers are identified as users needing flow integration. The flow integration infrastructure makes promises to both producers and consumers, indicating that they are not directly interacting but are connected through the infrastructure.
In summary, the text provides a framework for understanding and modeling the evolving landscape of event and data streaming integration using Wardley Mapping and Promise Theory. These tools help clarify the components and relationships necessary for achieving effective flow integration within organizations.
Flow integration requires two critical interfaces: logical connection and discovery. The logical connection interface establishes a contract between the producer and consumer, managing data packaging and delivery. It involves authentication, subscription management, and termination. Physical connections, handled by underlying infrastructure, link computing systems without direct management by producers or consumers. The discovery interface identifies available event streams and their properties, such as data volume and protocols.
Protocols consist of metadata and payload formats. Metadata formats describe information for understanding payloads, while payload formats define data transmission. These protocols enable communication between producers and consumers, with examples like the Cloud Native Computing Foundation’s Cloud Events specification.
Flow interaction turns event streams into actionable insights. Key components include sources, processors, queues, and sinks. Sources collect data, processors handle incoming streams, queues buffer data for asynchronous communication, and sinks display or store processed streams. Each component plays a role in creating value from event streams.
Sources gather data for streams, such as sensors or APIs. Processors act on data, converting or forwarding it as needed. Queues decouple producers from consumers, allowing flexibility in data handling. Sinks finalize the data journey, storing or displaying results.
Infrastructure underpins these components, providing compute, storage, and networking. It supports logical and physical connections, ensuring capacity and commodity services for flow interaction tasks.
Promise Theory helps define relationships between components, ensuring clear interactions. For instance, queues promise data handling to processors, not directly to producers or consumers. Similarly, interfaces promise event publication mechanisms to processors, highlighting the importance of processing in flow interaction.
Finally, mapping the value chain involves understanding the evolutionary state of each component. Using Wardley Mapping, components are placed on a scale from genesis to commodity, reflecting their maturity and adoption. This approach provides insights into technology development and helps anticipate future trends in flow integration.
In analyzing flow through Wardley Mapping, we identify key components of a value chain and their evolutionary stages. Maps, unlike typical diagrams, convey meaningful spatial information, with key traits such as an anchor, meaningful position, and consistency of movement. In Wardley Maps, the user need acts as the anchor, positions of components reflect their evolutionary stage, and movement indicates progression from Genesis to Utility.
When mapping a value chain, we categorize components into user needs, flow integration, interaction, and infrastructure. Users and their needs can be placed along the evolutionary axis, but their exact position often doesn’t alter the map’s meaning. Flow integration, defined by interfaces and protocols, lacks a common specification. While standards like HTTP and MQTT exist, logical connections remain in the product stage, aiming for commoditization. Discovery APIs are largely in Genesis, with no widely adopted standards.
Interaction components, including sources, processors, queues, and sinks, are more established. Process and queue components are generally in the Commodity phase, available as products or utility services. Sources vary, with some commoditized and others in the Product phase. Infrastructure, primarily cloud-based, is in the Commodity phase, offering economies of scale and reducing development friction.
The mapping of flow integration highlights the current custom nature of interfaces and protocols, with potential for future standardization. Interaction components are more advanced, with many solutions available as utilities. Infrastructure’s cloud dominance simplifies development and deployment.
Chapter 4 evaluates the current streaming market, examining technologies that support flow architectures. Service buses and message queues facilitate real-time data sharing, overcoming limitations of database-based integration. Message-oriented middleware (MOM) evolved to decouple producers from consumers, using queues to ensure message delivery. This approach allows for asynchronous communication and various delivery guarantees.
Overall, the analysis of flow integration through Wardley Mapping and evaluation of current technologies reveals a landscape in transition, with opportunities for standardization and commoditization in the future. The focus is on understanding the current state and preparing for the evolution of flow technologies, driven by advancements in cloud infrastructure and real-time data processing.
Message queues and service-oriented architectures (SOA) are foundational to modern distributed systems, enabling components to evolve independently by decoupling producers and consumers. Message queues facilitate this by allowing new producers and consumers to be added with minimal changes, using publish-and-subscribe (pub/sub) mechanisms for precise message routing. Service buses, particularly enterprise service buses (ESBs), emerged in the 1990s to manage the complexity of connecting diverse services and applications, offering a common communication plane and supporting data transformation, security protocols, and process automation.
However, ESBs face limitations in scalability and performance due to their centralized nature, leading to their focus on specific application clusters. Despite these limitations, the core concept of decoupling producers and consumers has influenced modern streaming architectures.
The Internet of Things (IoT) has expanded the landscape with various protocols tailored for different use cases, such as MQTT, a lightweight pub/sub protocol ideal for IoT applications. MQTT brokers manage message routing between producers and consumers, supporting asynchronous communication. Major cloud providers offer MQTT brokers, integrating with broader services for enhanced communication and processing.
HTTP and WebSocket are also prevalent in IoT, although they lack the pub/sub semantics of MQTT. HTTP operates as a request-and-reply protocol, while WebSocket supports bidirectional streaming over TCP connections. Both protocols are more point-to-point, without the topic-based message routing of MQTT.
Event processing architectures introduce tools that process event streams, enabling real-time interaction and data management. These systems often use queues or alternative methods for state management, processing events to enhance flow and impact across applications. Key engines for event processing include functions, low-code/no-code processors, log-based streaming platforms, and real-time stateful systems.
Functions, such as AWS Lambda, offer low-toil approaches for executing code in response to events, simplifying tasks like sorting, filtering, and aggregation. These advancements allow developers to efficiently manage event-driven architectures, enhancing the responsiveness and scalability of distributed systems.
The text discusses various technologies and platforms related to event-driven architectures, focusing on serverless computing, low-code/no-code platforms, log-based stream processing, and stateful stream processing.
Serverless Computing: Serverless architectures, such as AWS Lambda, enable developers to focus on application-specific code by minimizing operational overhead. These platforms allow functions to be triggered by events, integrating seamlessly with other services like Amazon DynamoDB and API Gateway. Other cloud providers, like Microsoft Azure and Google Cloud Platform, offer similar event-driven services.
Low-Code/No-Code Platforms: Platforms like VANTIQ and Mendix allow users to design workflows visually, reducing the need for traditional coding. These platforms can integrate with queueing systems and are increasingly targeting event-driven applications. Despite this, most low-code/no-code solutions are focused on web and mobile app development, but the event-driven space is expected to grow.
Log-Based Stream Processing: Log-based platforms, exemplified by Apache Kafka, store events in topics that maintain a sequence over time. This allows multiple consumers to access the same data stream independently. Events are stored with a key, value, and timestamp, enabling consumers to read from specific points in time. This architecture supports event sourcing, where the state of an entity is reconstructed from a sequence of events.
Stateful Stream Processing: This approach involves maintaining a model of system state, allowing for more intelligent processing. Digital twins represent entities, maintaining state and relationships. Platforms like Swim.ai and EnterpriseWeb use this model to dynamically build and process stateful representations, offering real-time updates and machine learning capabilities.
Integration and Streaming Architectures: Current integration platforms use connectors to enable communication between disparate systems. These connectors allow for specific functions like ingress and egress processing. However, the rise of serverless and event-driven technologies is shifting focus towards more flexible, composable integration methods.
Future Speculations: The text suggests that the evolution of flow interfaces and protocols will lead to new integration models, requiring a reevaluation of current technologies and their capabilities. It emphasizes understanding the strengths and weaknesses of each event processing method to choose the best fit for specific use cases. The discussion also hints at the potential for significant changes in the technology landscape as these components evolve.
Overall, the text provides a comprehensive overview of the current state and future potential of event-driven architectures, highlighting the importance of adaptability and integration in developing robust systems.
The text explores the evolution of flow integration, focusing on how event-driven integration interfaces and protocols can become commodity technologies. It uses Wardley Maps to analyze the current landscape and climate, highlighting the importance of evolving components like payload data format, metadata format, and discovery. The evolution of these components is crucial for flow integration to become a standardized, universally adopted practice.
Flow integration’s commoditization requires standardized interfaces and protocols. Without this standardization, integration would remain complex and costly due to incompatible solutions. The text argues that a lack of standardization would prevent flow integration from becoming a commodity, as it would necessitate custom solutions for each unique interface.
The text also introduces “gameplay,” a method of using situational awareness to drive strategic decisions. It references Simon Wardley’s 61 gameplay tactics, which include strategies like open licensing, market differentiation, and exploiting network effects. These tactics help organizations navigate competitive landscapes and drive technology adoption.
A significant focus is on the “Standards Game,” where differentiation in utility models shifts from product features to quality of service and pricing. Major technology vendors like Salesforce, SAP, and Microsoft could benefit from adopting event-driven integration standards, simplifying integration challenges and focusing on unique data and processes.
The text discusses the potential for network effects to drive the success of flow integration. As more producers and consumers adopt standardized event streams, the market can grow rapidly. Entrepreneurs are encouraged to participate in standard development and position themselves early to capitalize on market growth.
Cocreation is another key concept, where companies collaborate to build value around flow integration. Historical examples include the IFX Foundation for electronic payments and OASIS for the MQTT standard. Such collaborations could drive the development of flow payload standards.
Finally, the text hints at defensive and aggressive gameplay tactics, like “Pig in a Poke,” where legacy assets are offloaded to less aware buyers. These strategies are part of the broader gameplay framework used to anticipate and influence market evolution.
The text discusses the concept of “flow” in technology, focusing on its potential and challenges in the context of market dynamics and enterprise adoption. It highlights “Harvesting,” where companies replicate successful products, potentially leading to monopolistic practices. The evolution of technology isn’t always ethical, but understanding market forces can guide effective regulations and strategies.
Vendor Inertia: Initially, when Amazon Web Services (AWS) entered the market, skepticism from customers and vendors was prevalent due to security concerns and threats to existing business models. Over time, enterprises began adopting public cloud solutions, blending them with private and virtualized infrastructures. This shift indicates a reduction in resistance, but inertia persists, especially among major cloud providers like AWS, Azure, and Google Cloud Platform (GCP), which have developed proprietary ecosystems. Integrating these with other services requires significant effort, although cloud providers are beginning to recognize the broader value of event streaming.
Enterprise Inertia: Large organizations face challenges due to complex IT systems, making technology adoption slow. Typically, transformation takes about three years: understanding, prototyping, and scaling. Adoption of “flow” standards will likely follow this timeline, with security, performance, and cost being major concerns. Flow needs to prove its security capabilities to gain trust in sectors like finance and healthcare.
Open Source and Startups: Open source projects, crucial for real-time data integration, are expected to support flow due to their adaptability. Startups may resist fully open interfaces but could benefit from a larger market of integrable customers.
Telecommunications Role: As key players in network traffic, telecom companies could influence flow adoption. While some architectures might minimize their value, flow could enhance network services’ quality.
Flow’s Potential: The text envisions a future where flow becomes a commodity infrastructure for event-driven integration. However, predicting specific applications and innovations is challenging. The simplicity and standardization of flow could drive new, unforeseen uses, potentially becoming integral to the internet.
Security Challenges: Security is paramount for flow adoption. Existing protocols like TLS offer network encryption, but more is needed for data protection. End-to-end encryption is crucial, as demonstrated by Zoom’s pivot to offer it after public criticism. Standards like CNCF’s CloudEvents and protocols like MQTT and AMQP suggest payload encryption but lack explicit support, highlighting a gap that must be addressed for flow to succeed.
Overall, the evolution of flow depends on overcoming inertia through standardization, enhanced security, and demonstrating value, paving the way for innovative applications and broader adoption. The process mirrors historical technological evolutions, suggesting a gradual but transformative impact on the digital landscape.
The text discusses challenges and considerations in event-driven systems, focusing on encryption, connection security, data provenance, and agility.
Encryption and Protocols: AMQP messages ensure payload integrity, facilitating encrypted payloads. However, event-specific protocols differ, lacking a universal encryption approach. The CNCF CloudEvents team is working towards solutions, although encryption is not yet part of their specification. Similar to HTTPS, which relies on TLS, event protocols may support encrypted payloads without specifying encryption methods, offering flexibility but lacking optimization.
Connection Security: Ensuring events reach intended recipients without interception requires robust protocol support. Man-in-the-middle attacks are a concern, where adversaries intercept and alter messages. TLS mitigates this by using trusted certificate authorities for identity verification. However, not all devices support TLS, necessitating alternative methods like X.509 certificates for broker identity verification. Future protocols may need to handle multi-party communication securely.
Data Provenance: Maintaining data integrity is crucial, ensuring data is not tampered with during processing. Data provenance involves tracking data origins and alterations. Simple checksum mechanisms could ensure data integrity, but are vulnerable to reverse engineering. Ledger-based approaches, like blockchain, offer immutable records but face performance challenges. Ensuring accurate data in real-time applications remains a significant challenge.
Agility and Interface Design: The World Wide Flow (WWF) must adapt to changes while maintaining trust. Loosely coupled interfaces allow independent component modifications, enhancing system flexibility. Composability is key, enabling solutions from known building blocks. Interfaces could range from messaging-oriented to HTTP-based, with a balance between new mechanisms and existing protocols like WebSockets. The CNCF CloudEvents group is working on defining subscription and discovery interfaces.
Protocol Predictability: Protocols must ensure reliable data exchange between producers and consumers. This involves managing event metadata and payloads. Metadata provides context, enabling consumers to interpret data correctly. It may be included in the event or shared during connection setup. A standard interface for stream connections is yet to be established, but efforts are underway to address this gap.
Overall, the text highlights the complexities of creating secure, adaptable, and efficient event-driven systems, emphasizing the need for standardization and innovation in protocols and interfaces.
The text discusses the complexities and challenges of integrating event streams using protocols like MQTT and AMQP, highlighting the lack of compatibility and the need for a unified metadata system. The CNCF CloudEvents specification is presented as a solution for defining bindings between metadata fields and underlying protocols, potentially serving as a model for metadata flow.
Regarding payload protocols, the text notes the absence of standardization, with most protocols assuming payloads are undefined blocks of bits. It suggests that while early streams may define their own formats using structures like JSON or YAML, industries might eventually adopt common standards. However, predicting these standards is difficult, as they will depend on cost and flexibility.
Timeliness is emphasized as a key value proposition of flow, focusing on reducing integration costs and signaling state changes in near-real time. The text explains that data value decreases over time, necessitating timely processing. It introduces two timeliness elements: latency (time for event availability) and retention (duration of event availability).
Latency involves factors like network latency, which is constrained by the speed of light and network congestion. To minimize latency, strategies such as reducing network hops and employing edge computing are suggested. Edge computing, which localizes processing, is seen as crucial for scalability and efficiency.
Processing latency, arising from event handling, can be managed by parallel processing and performance management techniques. The text suggests adopting web application performance patterns, like setting performance budgets for processing steps.
Retention of event data poses challenges similar to data at rest, with questions about how long to retain events and how to manage storage costs. The text anticipates that retention policies will vary by industry, balancing the need for timely event processing with storage constraints.
Manageability of flow systems requires observability and controllability. Observability involves detecting meaningful signals from operations data, while controllability allows operators to affect system behavior predictably. The text compares this to HTTP error codes, suggesting similar signaling mechanisms for flow protocols to maintain operations while minimizing costs.
Overall, the text emphasizes the need for careful consideration of latency, retention, and manageability in developing efficient flow systems, predicting that industries will experiment with different policies and technologies to address these challenges.
The text explores the complexities and opportunities of integrating event-driven systems, focusing on flow-based architectures. It draws parallels with existing web and API-based systems, emphasizing the need for performance, reliability, and predictability in services. Real User Monitoring (RUM) is highlighted as a standard for web performance, but cloud services often lack detailed performance data, suggesting that flow producers might provide operational event streams to signal issues.
Controllability in distributed systems is crucial. The text compares flow systems to web APIs, where service providers set operational contexts, and consumers have limited control. In flow systems, producers or flow services often set the context, but consumers might also influence operations. The text warns of unintended behaviors in event-driven systems, such as circular dependencies, which can lead to cascading failures. An example is the 2010 flash crash in the US stock market, where feedback loops caused significant market disruption. To prevent such issues, flow protocols should include mechanisms like circuit breakers to detect and halt feedback loops.
Event-driven architectures offer the ability to replay past events, enabling scenarios like financial audits, troubleshooting, and simulations. This “memory” feature allows for detailed analysis and modeling of system behaviors. However, capturing extensive event data can be costly, and not all use cases require it.
Intellectual property (IP) control is critical for flow systems. Data provenance ensures data accuracy and prevents value destruction or deception. The text discusses the challenges of enforcing IP rights, drawing from the music industry’s experience with digital distribution. Streaming has emerged as a solution, offering convenience while protecting IP by discouraging unauthorized distribution. Flow systems could adopt similar models, integrating monetization schemes into core interfaces to facilitate subscriptions and payments for data streams.
The text identifies four basic flow patterns: Collector, Distributor, Signal Processor, and Facilitator. Each pattern presents unique challenges and opportunities for flow systems. The Collector pattern, for instance, involves a single consumer subscribing to multiple producers, common in IoT applications. The text questions whether consumers should always initiate flow connections or if producers could also initiate them, suggesting flexibility in ownership of event streams.
Overall, the text highlights the importance of observability, controllability, and IP protection in developing robust flow systems. It suggests that as flow architectures evolve, they will enable new forms of software integration, driving significant commerce and innovation.
The emergence of flow involves various patterns that address the integration and distribution of event-driven systems. A key pattern is the Collector Pattern, which requires scalable infrastructure to handle potentially millions of streams, similar to architectures used by tech giants like Facebook and Google. This pattern could be employed by governments mandating retail businesses to send sales data for tax purposes, with a centralized URI simplifying integration for point-of-sale vendors.
The Distributor Pattern deals with broadcasting streams to numerous consumers, akin to cable TV networks. Challenges include scaling outputs and mitigating network latency, especially in geographically distributed scenarios. Edge computing can help by bringing endpoints closer to consumers, reducing latency and improving reliability. However, producers still face challenges in efficiently distributing data to these endpoints.
The Signal Pattern functions like a traffic cop, directing events efficiently between producers and consumers. This pattern is crucial in complex systems like industrial control, where multiple signals coordinate various processes. The evolution of centralized platforms for event-driven architectures is expected, but localized, distributed solutions may prevail due to the complexity of managing large systems.
The Facilitator Pattern is a specialized form of Signal Pattern, crucial for cross-organization integration. It matches producers offering services with those needing them, similar to platforms like Uber or Google AdWords. The challenge lies in scaling these matches globally while ensuring transaction integrity and efficiency.
Adopting flow requires identifying business needs for real-time processing and integrating event-first strategies in application architectures. Organizations should consider participating in developing flow standards and technologies to prepare for future integration opportunities. Despite the speculative nature of flow’s evolution, businesses can position themselves by focusing on real-time integration that enhances efficiency or creates new value.
The future of flow is uncertain, influenced by technological advances and market dynamics. Organizations must remain flexible and adaptive, ready to leverage flow’s potential while anticipating changes in standards and technologies. The integration of flow systems should aim to enhance existing architectures without unnecessary complexity, ensuring readiness for a more interconnected future.
For decades, distributed systems developers have faced the challenge of reacting to events as soon as they are detected. High-frequency trading (HFT) systems were early examples of leveraging live data streams for arbitrage opportunities, predating the formal concept of event-driven architectures. Derek Collison, a technologist with extensive experience in real-time messaging, identifies four basic use case categories for event streaming and messaging: addressing and discovery, command and control, query and observability, and telemetry and analytics.
Addressing and Discovery: This involves tracking dynamic and ever-changing agents within a system. For instance, companies like UPS or FedEx must manage over 100,000 vehicles globally, determining operational status and coordinating new entries. Similarly, cloud providers must discover and integrate new servers into their resource pool. Addressing and discovery require systems to assign identities and coordinate across services. Solutions include registration services, where agents indicate their existence, and discovery services, which monitor network transmissions to identify agents. Platforms like Swim OS can automate discovery by generating digital twins from event streams, maintaining accurate state models of agents.
Command and Control: This use case connects event sources to decision-making and action-taking services, exemplified by SCADA systems in industrial automation. These systems process incoming data, decide on actions, and command machines or indicators. Command and control can be centralized, using stateless or stateful services for real-time analysis, or distributed, leveraging edge computing to manage localized event traffic. Distributed control mimics natural scaling patterns, facilitating immense scalability by reducing network latency and enabling localized decision-making.
Query and Observability: This category involves monitoring individual agents or specific processes, asking questions of an event stream to understand behavior. It focuses on real-time data analysis to provide insights into system operations. Observability tools help track system performance and diagnose issues by analyzing event streams.
Telemetry and Analytics: Similar to query and observability, telemetry and analytics involve analyzing event streams to understand broader system behaviors and trends. This category focuses on aggregating data for comprehensive analysis, enabling organizations to make data-driven decisions and optimize processes.
Collison’s categories provide a framework for understanding where flow can be applied within an IT portfolio. By identifying applicable flow patterns and aligning them with these categories, organizations can effectively integrate event-driven architectures to enhance their operations. Addressing and discovery, command and control, query and observability, and telemetry and analytics collectively illustrate the vast potential of flow in modern systems, offering solutions to complex integration challenges and enabling real-time responsiveness.
In complex systems, understanding the state of agents is crucial, whether for traffic systems, healthcare monitoring, or financial trading. The key is to determine when the current or ongoing state of specific agents is important. Querying agents typically involves sending requests for specific data, often using APIs for synchronous communication. However, in dynamic environments with many agents, asynchronous event streams may be more effective. This allows querying based on criteria like platform or tags, facilitated by publish-subscribe services that manage topics and agents.
Observability involves monitoring agents without direct requests, using event traffic sorted into topics. This can be done by sorting incoming data into specific topics or by processing a broader stream and filtering for relevant events. Balancing processing between producer and consumer sides is essential, often utilizing log-based or high-scale messaging platforms. Serverless platforms like AWS Lambda are increasingly viable for managing data volume and processing overhead.
Telemetry and analytics focus on system behavior, providing real-time insights through big data processing. This approach is used in various fields, from ecommerce user measurement to campaign analytics. Real-time analytics offer competitive advantages by enabling immediate understanding and response to system behaviors. The big data market, dominated by batch processing, is gradually incorporating stream-based methods, with technologies like Apache Flink and swim.ai offering stateful stream processing.
EventStorming is a method for modeling business processes through event flows, facilitating conversations to map complex activities. This involves identifying events, influences, commands, and policies, providing a timeline of required actions. It highlights organizational operations, priorities, and integration opportunities with external systems, suggesting where flow can be optimized.
When building systems to support these use cases, architecture choices depend on functional, scale, and resilience requirements. Different patterns are needed for messaging and eventing, discrete events versus series, and single actions versus workflows. Eventing involves broadcasting facts, while messaging requires interaction. Understanding these distinctions helps in selecting the appropriate infrastructure and services for streaming applications.
In building flow-ready solutions, understanding the distinction between messaging and eventing is crucial. Messaging involves a two-way dialogue between producers and consumers, requiring state management to track conversations. This approach is suitable for coordinated activities but can be limited by scalability due to the need for distributed state management. Techniques like sharding and consensus mechanisms help manage state but add complexity and latency. Edge computing can enhance scalability by localizing message coordination, reducing traffic between agents and core services.
Eventing, on the other hand, involves broadcasting information without expecting feedback, resulting in loosely coupled connections. This allows consumers to connect or disconnect without affecting the producer, fostering innovation and flexibility. Eventing is ideal for scenarios like alerts and notifications where the producer doesn’t need to track consumer responses.
Event consumption can be categorized into discrete events and event series. Discrete events are standalone and involve minimal producer-consumer promises, enhancing scalability. The producer pushes events to consumers without additional actions required. Using Webhooks or similar protocols allows decoupled interactions, improving flexibility.
Event series require consumers to pull events, maintaining an active history for analysis. Log-based queues, like Apache Kafka, excel in this area by preserving event order, crucial for pattern recognition and machine learning models. They act as a “system of record” for both event values and sequences, facilitating large-scale processing.
The choice between single actions and workflows in eventing depends on the complexity of the communication. Single actions involve straightforward interactions, while workflows require a series of related actions. Understanding these distinctions helps design efficient flow architectures that can adapt to varying needs and scales.
Overall, the focus is on minimizing dependencies and promises between producers and consumers, allowing for scalable and resilient systems. As technology evolves, innovations in event series processing and new abstractions are expected to further enhance flow architectures.
In the realm of event-driven architectures, two primary actions are identified: single actions and workflows. Single actions involve discrete events requiring a single processor action, such as a function or API call, while workflows involve multiple steps, such as processing an insurance claim. Understanding this distinction is crucial for developers to choose the appropriate architecture or service, saving time and effort.
For discrete events, public cloud services like Azure Event Hubs, Google PubSub, and AWS EventBridge, as well as Kubernetes’ Knative platform, provide event routing capabilities. These services allow developers to deploy functions that respond to events without managing containers or virtual machines. The simplest implementation involves configuring an event router to send events to a queue or directly to a function. However, for stateful event processing, platforms like Swim.ai are recommended.
Workflows track the state of a process through multiple steps. Tools like AWS Step Functions and Azure Logic Apps simplify creating and managing these processes. Workflow engines are ideal for complex, interdependent actions, allowing for visual process modeling and third-party integrations. These tools are increasingly used in serverless applications for conditional event routing.
The future of flow involves addressing technical challenges such as scalability, security, and standardization of interfaces and protocols. A marketplace of streams is essential for innovation and experimentation. Standards bodies like the IETF, OASIS, and CNCF are working on protocols critical to flow, such as TLS, MQTT, and CloudEvents. However, adoption by vendors and end users is crucial for these standards to succeed.
Open source projects play a significant role in the development of flow technologies. Foundations like Apache and the Linux Foundation’s CNCF host numerous projects related to event processing, such as Apache Kafka and NATS.io. These projects may influence future standards and protocols for flow.
Entrepreneurship presents opportunities in areas like data provenance, event data distribution tracking, and monetization mechanisms for event streams. As flow technologies evolve, new entrepreneurial opportunities will emerge. Building flow networks, which involve creating useful event streams and consumers, is as important as developing the technical infrastructure.
Trade groups and other organizations can act as catalysts for flow adoption, ensuring a robust ecosystem of both technology providers and consumers. The emergence of a World Wide Flow (WWF) will be a market phenomenon, driven by collaborative efforts across industries and technologies.
Event-driven integration is becoming increasingly important for organizations with shared goals, particularly in industries like finance and insurance, which have established trade groups to standardize data exchange. These standards, such as EDI, enable consistent communication across organizations. Participation in trade associations can facilitate the adoption of event-driven integration standards, although access to decision-making committees can be challenging. For those outside existing groups, forming new organizations to manage integration standards could be beneficial, especially as new use cases emerge.
Governments also play a role in setting regulations that influence integration standards. Agencies, such as NIST, can act like trade associations for public sector integration. In the private sector, market ecosystems, like AWS, drive standardization by establishing protocols that enhance mutual value among vendors. AWS, for example, has set standards for image packaging and event formats, fostering predictable integration and reducing development costs.
The success of platforms like AWS shows how dominant vendors can shape integration requirements, similar to how Microsoft standardized interfaces for software compatibility. Startups often succeed by adding value within these ecosystems, creating a feedback loop that attracts more customers and vendors. However, these value-add services can be copied by platform vendors, leading to competition.
Open source projects also influence integration standards. Collaborations between projects like Kubernetes and Postgres could establish consistent protocols for event-driven integration. Open source alliances might define streams around industry-specific abstractions, fostering a unified operations ecosystem.
The evolution of event-driven integration is still in its early stages, with significant opportunities for developers, architects, and entrepreneurs to influence its future. The adoption of these systems will depend on collaboration across the tech community.
In evaluating the current flow market, infrastructure plays a crucial role. Cloud computing, led by AWS, Microsoft Azure, and Google Cloud, has transformed how software is built and deployed, offering on-demand IT resources. On-premises infrastructure, provided by companies like Hewlett-Packard and Dell, remains important for those building their own systems.
Virtualization technologies, such as VMware and Microsoft Hyper-V, have optimized hardware usage, while containerization, exemplified by Docker, simplifies software deployment. Kubernetes has become the standard for managing containerized applications, supported by a growing ecosystem that enhances its capabilities.
Overall, the infrastructure supporting event-driven integration is largely commoditized, with cloud services and container orchestration platforms leading the way. Integration mechanisms require interfaces and protocols that define how systems interact and exchange data. Understanding these components is essential for building effective event-driven systems.
Interfaces and Protocols in Modern APIs
Modern APIs like REST and GraphQL involve more than just call signatures; they define data exchange and security protocols. Interfaces allow consumers to connect with producers, while protocols manage data streams post-connection. Current technologies lack standard flow interfaces and protocols, and it may take 10–15 years to establish them. However, the internet’s basic connectivity is crucial for inter-organizational communication.
Connection Technologies
Connection components ensure producers and consumers can communicate over networks. Although no single standard exists for event streaming connections, core standards like Internet Protocol (IP) and Transmission Control Protocol (TCP) are foundational. IP enables data routing across network boundaries, while TCP handles packet transmission and flow control. QUIC, a modern protocol, optimizes concurrent connections for web applications and streaming, potentially replacing TCP with the rollout of HTTP/3.
HTTP and MQTT are key protocols in IoT for streaming data. HTTP establishes point-to-point connections, while MQTT is a lightweight publish-subscribe protocol used in IoT networks. WebSockets supports long-term, bi-directional communications, leveraging existing web infrastructure. Synadia NGS, based on NATS.io, is a messaging network that simplifies connections using subject strings.
Interface Technologies
Interfaces must enable consumers to locate producers and establish connections. They may allow for authentication and data stream requests. Examples include Kafka Consumer API and Kafka Connect, which facilitate event consumption in Kafka topics. However, they are not general flow APIs. EdgeX API offers a REST API for IoT applications, relying on platform-specific services. CNCF CloudEvents Subscription API aims to provide a common interface for event streams but lacks widespread adoption.
Protocol Technologies
Protocols manage streaming data, addressing, routing, encryption, and more. They define data packaging and transmission for accurate delivery. CNCF CloudEvents focuses on metadata for any connection protocol, enabling interoperability across platforms like AWS DynamoDB and Google BigTable. It supports structured (JSON) and binary payloads, making it versatile for various streaming use cases.
Observations
While new technologies like QUIC and NGS show promise, established components like HTTP and MQTT are widely adopted. Integration via new APIs and flow-centric protocols will be essential. Interfaces and protocols must evolve to support universal flow, simplifying connections and enabling efficient data streaming across diverse systems.
CloudEvents, introduced in October 2019, is a protocol designed to standardize event metadata across various transport protocols. Key elements include specversion
, type
, source
, subject
, id
, time
, datacontenttype
, and data
. Custom metadata can be added via extensions. Despite limited adoption, its potential is promising due to industry interest.
NATS is a CNCF project offering a simple protocol for high-performance messaging. It uses basic commands like SUB
for subscribing and PUB
for publishing, simplifying event passing. However, its simplicity may limit its use in diverse applications.
MQTT is a lightweight publish-and-subscribe protocol, ideal for IoT but adaptable for other uses. It supports message expiration and control functions but is limited by payload size and lacks direct integration with other protocols. CloudEvents can bind to MQTT for specific use cases.
AMQP, developed by OASIS, is an open standard for business message exchange, supporting various networking environments. It defines channels and metadata formats, making it suitable for inter-organizational integration.
HTTP, the most ubiquitous protocol, facilitates point-to-point connections but lacks publish-and-subscribe capabilities. It remains crucial for APIs like REST and GraphQL, potentially playing a role in flow architectures.
WebSocket enables two-way communication over HTTP ports, supporting subprotocols and secure connections. It can carry other protocols like CloudEvents, making it suitable for flow operations.
Discovery of data streams is crucial as their number grows. Simple search engines or web pages can facilitate discovery, but programmatic registries via APIs offer more automation. Companies like Vantiq and Solace are exploring registry solutions, though no universal standard exists yet.
Overall, the landscape is rich with protocols like HTTP, MQTT, and WebSocket, each with strengths that could contribute to flow architectures. CloudEvents might serve as a unifying protocol, but the ecosystem is still evolving, leaving room for new solutions.
The text examines the current landscape of event-driven architectures and stream discovery services, focusing on major players like AWS EventBridge and Azure Event Hub. These platforms facilitate event-driven development by offering schema registries to manage publisher-subscriber contracts and integrating streams from external sources such as SAP or Salesforce. However, they lack comprehensive internet-wide discovery services and detailed flow rate information.
The discussion highlights the potential for a “Google for event streams” as network effects grow, suggesting that services with the most accurate stream selections will have a competitive edge. Interaction with event streams is crucial, and the text categorizes relevant technologies, noting the diversity of event streaming software and the opportunities they present.
Producers in event streaming can be any device or software capable of streaming data, including technologies that process data before streaming. Producers might also act as consumers, processing incoming streams before forwarding data. The promise of these technologies is to deliver timely event data to consumers or agents.
Sources of event streams include sensors, converters, and agents, which collect and transmit data from real-world or digital environments. The growth of sensors has led to new applications and increased internet data traffic. The text categorizes sensors into environmental, inertial, fusion, and trigger types, noting the vast array of products available.
Web, mobile, and desktop applications serve as another source of flow events, leveraging event-driven architectures for real-time data exchange. These systems use messaging as an integration method, with cloud-based producers for SaaS applications like AWS and Microsoft emerging.
Public and private data feeds offer valuable services by collecting and offering data from specific sources, such as weather services or social media. While many still use request-response APIs, there is a shift towards streaming data models. Vendors in the “real-time backend” market, like PubNub and Socket.io, create streams from API-driven data sets.
Stream processors are crucial for consuming, manipulating, and routing event streams in real-time. The text highlights platforms like Apache Kafka, Pulsar, Storm, and Flink, which support different processing approaches, such as log-driven queueing and acyclic graph data processing. These platforms enable computation and transformation of streaming data, crucial for integrating IoT sensor data and other inputs.
Overall, the text emphasizes the burgeoning opportunities in stream discovery and processing technologies, driven by advancements in data packaging, transmission, and edge computing. These developments promise continuous growth in available data sources and processing capabilities.
Stream processing involves complex coordination and resources to handle thousands of events per second. Key tools like Kafka, Flink, and others are essential for log-based event processing at various scales. These tools are in the Commodity/Utility phase due to their widespread adoption and availability as commercial products and managed services.
Programming libraries and frameworks, such as Spring Cloud Stream (Java), Faust (Python), and Streams API (JavaScript), simplify creating and interacting with streams. They provide asynchronous capabilities for reading and writing data, often connecting to popular stream queues like Kafka and Flink. These libraries are crucial for processing data from various sources, such as web applications and sensors, and are expected to evolve to meet expanding flow standards.
Queues and logs are vital in asynchronous event-driven architectures, allowing events to be processed at various scales and decoupling producers from consumers. Queues are transient, focusing on delivering events without long-term storage, while logs persist events in a time-series format, offering memory of events. Process automation tools like AWS Step Functions and Azure Logic Apps manage multistep workflows, providing asynchronous coordination of event-driven activities.
Message queues, such as RabbitMQ and Apache ActiveMQ, facilitate asynchronous communication between applications. They have been integral since early computing systems and continue to be essential in modern architectures. Cloud services like AWS SQS and Azure Service Bus offer managed queueing solutions with various delivery guarantees.
Log-based streaming platforms, including Apache Kafka and AWS Kinesis, are core to event-driven applications, capturing and storing events until needed by consumers. Kafka leads this space, with numerous tools supporting its ecosystem, making it appealing to enterprise developers. Pulsar offers performance advantages in certain scenarios, gaining a significant following.
Consumer flow transforms data into value by driving insights or functionalities. Consumers use similar technologies as producers but focus on processing events to create value. They can forward processed data to new streams or terminate flows by sending data to a Sink. Stream processing platforms, such as Apache Kafka, Pulsar, and Flink, enable rapid manipulation of incoming streams for consumer-specific purposes. These platforms integrate with various technologies, allowing direct consumption from applications like Salesforce and Splunk.
Overall, stream processing technologies are moving towards the Commodity/Utility phase, driven by open-source projects and cloud services. They provide scalable solutions for processing and manipulating streaming data, essential for modern event-driven architectures.
The text discusses various technologies and approaches used in event-driven architectures, focusing on data processing, serverless computing, low-code/no-code platforms, reactive programming, and analytics.
Data Processing and SwimOS: Traditional data pipelines, like those in the Apache suite, process data through sequential steps. However, for use cases requiring real-time state management of interconnected objects, platforms like SwimOS are more suitable. SwimOS creates a graph of “digital twins” representing objects and relationships in the event stream, allowing agents to communicate and learn from each other. This approach is beneficial for applications like optimizing city traffic flows.
Serverless Event Processing: Serverless computing, offered by major cloud providers like AWS, Microsoft, and Google, allows developers to execute functions in response to events without managing servers. AWS Lambda pioneered this model, enabling functions-as-a-service where users are billed only for execution time. For complex workflows, AWS Step Functions are used to define multi-step processes. Serverless platforms are evolving to optimize function execution and expand their applicability.
Low-code/No-code Platforms: Platforms like Vantiq, OutSystems, and Mendix enable users to build applications using graphical interfaces, reducing the need for traditional coding. These platforms are particularly useful for business applications and event-driven systems, although they often require traditional coding for complex tasks. The “85% rule” suggests that while most needs can be met easily, some challenges remain that necessitate custom development.
Reactive Programming: Reactive programming models, such as those supported by Spring WebFlux, Akka, and Eclipse Vert.x, are designed for applications that consume streams efficiently. This approach emphasizes nonblocking, asynchronous data flow, allowing for rapid event processing. These frameworks are gaining traction in enterprise software development due to their efficiency and scalability.
Analytics and Sinks: Sinks in event-driven architectures are endpoints where events are processed or stored. Common sinks include data storage systems like relational and NoSQL databases. Analytics tools, both traditional and streaming, provide insights from event data. Streaming analytics, offered by platforms like Amazon Kinesis and Google Dataflow, allow real-time data analysis, enabling immediate insights and actions for applications such as online marketing.
Wardley Mapping: The text uses Wardley Mapping to categorize these technologies. SwimOS is positioned between product and utility, serverless platforms as commodities/utilities, low-code platforms as products, and reactive programming as emerging products. Sinks and analytics tools are mapped to the commodity/utility phase, reflecting their widespread availability and adoption.
Overall, the text highlights the evolution of event-driven architectures, emphasizing the importance of real-time processing, flexibility in application development, and the growing role of cloud-based services in providing scalable and efficient solutions.
The text discusses the evolution and impact of real-time data flow, emphasizing its potential to drive rapid responses across various applications. Real-time analytics and visualization capabilities are highlighted as essential, with technologies like KSQL offering near-real-time updates. Event-aware applications leverage event data to automate activities or signal human intervention, exemplified by high-frequency trading and connected vehicles. Major cloud providers enable developers to create functions reacting to operations events. The introduction of standardized interfaces could enhance tool adaptability for flow use cases, promoting immediate analysis and visualization.
The text explores the current flow market, noting the readiness of IT for real-time data flow despite the lack of adapted tools. The evolution of tools for large-scale data analytics and near-real-time processing is acknowledged, with potential benefits from standardized interfaces and protocols. This would allow tools to process new streams without custom code, enhancing institutional recognition of flow’s value.
Key concepts include the Wardley Mapping of event-aware applications, indicating a shift toward a product market from custom solutions. The text also discusses the importance of network effects, interoperability, and ecosystem creation in driving flow adoption. Various patterns, such as the Collector and Distributor, are identified for managing flow components.
The discussion extends to the impact of flow on industries like finance, healthcare, retail, and transportation, highlighting the potential for improved organizational efficiency and customer experience. The role of ecosystems, partnerships, and open-source projects in supporting flow adoption is emphasized. Challenges such as vendor inertia and enterprise resistance are noted, along with the importance of security, manageability, and timeliness.
Overall, the text underscores the transformative potential of real-time data flow, advocating for the integration of flow capabilities across various applications and industries to harness its full benefits.
The common pandora fish spends its first two years as a female and transitions to a male in its third year. Mating seasons vary by region, typically occurring from spring to autumn, with some areas experiencing two breeding periods. Females can release between 30,000 and 150,000 eggs. This species is a popular food in Mediterranean countries. Although classified as “least concern” by the IUCN, the Archipelagos Institute of Marine Conservation advises responsible consumption, emphasizing the importance of choosing sustainably sized fish and avoiding them during breeding seasons.
The illustration on the O’Reilly cover, created by Karen Montgomery, is based on a black and white engraving from Cuvier’s “Histoire Naturelle.” The cover uses Gilroy Semibold and Guardian Sans fonts, while the text is set in Adobe Minion Pro, headings in Adobe Myriad Condensed, and code in Dalton Maag’s Ubuntu Mono. O’Reilly offers a variety of learning resources, including books, videos, and online courses, available through their platform at oreilly.com/online-learning.
©2019 O’Reilly Media, Inc. O’Reilly is a registered trademark of O’Reilly Media, Inc.