Reactive In Practice: Java Development Guide To Event-Driven Systems
Lightbend Reactive Architecture In Practice
The "Lightbend Reactive Architecture: Foundations" learning path was released on IBM Cognitive Class last year and provides the necessary theoretical background to successfully build Reactive systems. So far, over 6000 developers have become more proficient in tomorrow's skill set.
This course was immediately followed by the "Lightbend Reactive Architecture: Advanced" learning path, which digs deeper into topics like sharding, the saga pattern, message brokers, event sourcing, and CQRS (Command Query Responsibility Segregation). While these are tremendously valuable learning resources, they provide narrower technical examples of individual concepts and are not meant to walk you through a complete application development process.
Now, this gap is being closed with the release of the first four units of a new tutorial on IBM Developer titled "Reactive in practice: A complete guide to event-driven systems development in Java". This series demonstrates how to build Reactive systems in the real world. To accomplish this, IBM's well known Stock Trader reference architecture has been rebuilt from the ground up as a Reactive system. With the introduction of a cloud-native approach to designing mission-critical enterprise systems, you can follow the first design considerations leading to relevant services implemented as microservices with Lightbend's Lagom Framework. The first four of 12 total units have been published and are available now:
1. DDD and Event Storming In The Stock Trading Domain
Unit one is all about domain-driven design (DDD) and event storming. The goal of using these is to establish a technology-independent language and detailed understanding of the business needs and processes allowing the business domain experts to communicate their domain knowledge with the rest of the team. Stakeholders involved may include technology experts, project management, user experience specialists, quality assurance analysts, and anyone else involved in the execution of this project.
Unit 1: Event storming the stock trader domain defines the building blocks of a Reactive system, starting with event storming.
2. Prototyping The UI And UI Integration Patterns
In unit two the translation of the stock trader domain model into software begins with the API for the new system. Teams begin collaborating with designers and mocking up user interface prototypes. Interface prototyping is an effective way to validate the learnings from an event storming workshop. Prototyping helps to challenge assumptions and arrive at an accurate final product.
Unit 2: Prototype the UI and UI integration patterns introduces some prototype interfaces for the Reactive Stock Trader.
3. Translate The Domain Model To Service APIs
Lightbend's Lagom Framework is used as the Reactive microservice framework. Lagom provides facilities for implementing Reactive microservices and is built on top of very powerful Reactive technologies by Lightbend like Akka, as well as the highly complementary Play Framework, used for front-end integration. The combination of Play and Lagom, both underpinned by Akka, streamlines the creation of highly scalable and robust microservices architecture systems.
Unit 3: Translate the domain model to service APIs helps you to start developing Reactive microservices.
4. Concurrency, Parallelism, And Asynchrony
The forth unit covers reactivity in depth by exploring the overall goal of responsiveness and how Reactive architectures are well-suited to build elastic, self-healing systems. Understanding concurrency and parallelism helps to make sense of how Play and Lagom systems are coded, specifically, why CompletionStage<T> is a return type in almost all of the methods and how it works.
Unit 4: Concurrency, parallelism, and asynchrony provides an understanding of the fundamentals of asynchronous programming principles.
About the authors of the series
Before joining RedElastic in 2018, Dana Harrington lead teams to successful launches of Reactive solutions for projects including a unified e-commerce grocery shopping experience, a third-party marketplace, machine learning based catalog search, and a project leveraging machine learning techniques to help Walmart Canada uncover the key drivers of customer loyalty. Prior to his consulting work, Dana taught post-secondary courses in mathematics, statistics, and software development. Dana has been a functional programming enthusiast for over twenty years.
Kevin Webber has over 18 years of Java development and architecture experience. Before starting the boutique consulting firm RedElastic in 2016, he was both a Developer Advocate and an Enterprise Architect at Lightbend. He was a popular presenter of Lightbend webinars and is a regular speaker on modern enterprise architecture practices.