[Note: this article by Srini Penchikala was originally published on InfoQ.com]
Reactive microservices, data center scale operating system (DCOS), and staging reactive data pipelines were the highlighted topics at the Reactive Summit 2016 Conference held this week.
He cited Gartner’s report saying that traditional application architectures and platforms are obsolete. Microservices architecture, defined as a system of autonomous collaborative distributed services, is the core part of the new architecture model. Distributed systems is the architectural context of microservices which calls for a different way of developing and deploying the applications. Some of the guidelines are: isolate all the things, use bulkheading and go asynchronous.
Asynchronous communication allows decoupling in space and time and this model embraces the constraints of distributed systems.
The microservices should be designed in such a way that they own the state exclusively because managing the state is a crucial part of microservices design. Boner said there is no such thing as a "stateless" architecture; it's just someone else's problem. Developers need to think in terms of consistency boundaries and Bounded Contexts. He also talked about other patterns like Event Sourcing and CQRS.
Reactive microservices should also be mobile but addressable. Virtual addressing helps with Load-balancing between stateless services, state replication of stateful services and relocation of a stateful service.
Microservices come in systems so we should strive to minimize coupling and communication. We have to rely on eventual consistency, but don't be surprised, it's how the world works.
He suggested developers to consider using microservices patterns like API Gateway and Circuit Breakers and always apply back-pressure in the design because a fast system should not overload a slow system.
In another keynote presentation, Edward Hsu, VP of Enterprise DC/OS at Mesosphere, spokeabout developing modern applications with containers and microservices technologies. Mesosphere’s community and enterprise versions of the data center operating system (DC/OS). He discussed the case study of ESRI using this solution for geo-spatial data analytics purposes.
Helena Edelson also spoke at the conference about reactive distributed systems for streaming big data, analytics and machine learning. She said that being reactive in distributed systems is critical and discussed how we can build resilient, scalable systems that can learn from system failures and errors. She described the architecture where the failure context is routed to a message topic to process through the machine learning streams. The architecture is based on technologies like Kafka, Spark Streaming, Spark MLLib, Cassandra and FiloDB database. Developers should bake the fault tolerance and error handling strategies and route awareness into every application and node in the cluster. She also talked about the adaptive load balancing and cluster metrics API.
Jaakko Pallari and Simon Souter from Cake Solutions spoke about the staging reactive data pipelines. Staged reactive data pipelines based on the Staged EDA (SEDA) architecture where the processes are separated by queues and the processing is done in stages. Microservices are used as the processing components and the messaging middleware can help with resilient data distribution between microservices. This model, with Apache Kafka as the backbone, gives the basic architecture to perform distributed data pipelines.