InfoQ Homepage Event Driven Architecture Content on InfoQ
-
Beyond the Database, and beyond the Stream Processor: What's the Next Step for Data Management?
Databases have been around forever with the same shape: you make a request to your data and then you receive an answer. Now, stream processors came along with a different approach: data isn’t locked up, it is in motion. Understand how stream processors and databases relate and why there is an emerging new category of databases that focus on data that stays in place as well as data that moves.
-
Real Time APIs in the Context of Apache Kafka
Events offer a Goldilocks-style approach in which real-time APIs can be used as the foundation for applications which is flexible yet performant; loosely-coupled yet efficient. Apache Kafka offers a scalable event streaming platform with which you can build applications around the powerful concept of events.
-
From Monolith to Event-Driven: Finding Seams in Your Future Architecture
One of the challenges of migrating your system’s architecture is excluding non-desirable attributes and leaving the target state uncorrupted. An event-driven architecture and its related patterns, CQRS and Event Sourcing, are positioned well to introduce seams into the architecture that allow you to separate legacy and modern elements.
-
Principles for Microservice Design: Think IDEALS, Rather than SOLID
For object-oriented design we follow the SOLID principles. For microservice design we propose developers follow the “IDEALS”: interface segregation, deployability (is on you), event-driven, availability over consistency, loose-coupling, and single responsibility.
-
Running Axon Server in Docker and Kubernetes
Axon Server is an all-in-one solution for CQRS and ES applications written in Java for the Axon Framework. In Part 2 we continue by looking at the platform we run it on; in particular Docker and Kubernetes.
-
The Challenges of Building a Reliable Real-Time Event-Driven Ecosystem
Globally, there is an increasing appetite for data delivered in real time; we are witnessing the emergence of the real time API. When it comes to event-driven APIs engineers can choose between multiple different protocols. In addition to choosing a protocol, engineers also have to think about subscription models, too: server-initiated (push-based) or client-initiated (pull-based).
-
Applied Probability - Counting Large Set of Unstructured Events with Theta Sketches
In this article, author Ronen Cohen discusses the solution to processing the event data using Theta Sketches and technologies like HBase and Kafka.
-
Running Axon Server - CQRS and Event Sourcing in Java
Axon Server Standard Edition is an Open Source, purpose-built solution supporting distributed CQRS and Event Sourcing applications written in Java with the Axon Framework. Part one in this series discusses running it locally and explores aspects of Administration/Security and Configuration. It also discusses more advanced features available with the Enterprise Edition - Clustering/Multi-Contexts.
-
Is Edge Computing a Thing?
Edge Computing is definitely a thing, but the computing need not occur at the edge. Instead what is needed is an ability to compute (anywhere) on streaming data from large numbers of dynamically changing devices, in the edge environment. This in turn demands an architectural pattern for stateful, distributed computing.
-
The Kongo Problem: Building a Scalable IoT Application with Apache Kafka
In this article, author Paul Brebner discusses the best practices for developing IoT projects using Apache Kafka and Kafka Streams technologies and how to maximize Kafka scalability.
-
Rethinking Flink’s APIs for a Unified Data Processing Framework
Since its very early days, Apache Flink has followed the philosophy of taking a unified approach to batch and streaming. The core building block is the “continuous processing of unbounded data streams, with batch as a special, bounded set of those streams.” Recent updates to the Flink APIs include architectural designs by the community to support batch and streaming unification in Apache Flink.
-
Obscuring Complexity
One of the most important things that software architects do is manage the complexity of their systems in order to mitigate release disruption while maintaining sufficient feature velocity. When we cannot reduce complexity, we try to hide or shift it. Software architects tend to manage that complexity with the time-honored strategies covered in this article.