• News
  • Reactive in Practice

Reactive in Practice

February 12, 2019

We’re thrilled to present learning content that we’ve been developing for quite some time with the assistance of IBM and Lightbend.

Reactive in practice: A complete guide to event-driven systems development in Java is a 12 part series that takes learners through the entire spectrum of a real-world event-sourced project from inception to deployment. Complete examples of this material are very sparse in the industry because they are so time intensive to create, but with the support of IBM through the IBM Developer portal, along with review assistance from Lightbend, we’ve brought this material to life. We hope it inspires the community and showcases best practices of these technologies.

Units 1 to 4: An Introduction to Event-Driven Systems

The first four units of the series will guide readers through the inception of an event-driven project. Rather than dive into code straight-away, we bring techniques that we use in our consulting practice to readers, such as:

  • Event Storming: Learn how to design event-driven, reactive systems from the ground up in a collaborative team environment. (For more information, read our Medium post on Event Storming, one of the most referenced sources on this technique.)
  • Domain-Driven Design (DDD): A more detailed modelling technique for technical teams that help to structure event-driven systems.

Once readers are up to speed on the basics, we walk through prototyping the Reactive Stock Trader UI using Vue.js, which we leverage to challenge our assumptions during higher-level design phases such as Event Storming and DDD. Once we’re happy with the prototype, we use it along with our models to define an API using the OpenAPI Specification. Finally, we begin to introduce the building blocks of an event-sourced system based on Java, Play, and Lagom.

We encourage readers to complete the units in order, but if you’d like to read these out of order, who are we to complain! We’re sure you’ll extract some tips, tricks, and best practices either way.

Links to individual units are below:

  • Unit 1: How to design reactive systems using event storming and DDD. In this unit we introduce readers to the Reactive Stock Trader domain and begin to model our event-driven-system.
  • Unit 2: UI Prototyping and API Design. In this unit we begin to turn our models into functioning prototypes, starting with the UI which we use to challenge assumptions. Eventually we have enough detail to finalize an API spec.
  • Unit 3: Implementation with Java, Play, and Lagom. In this unit we dive into the code – the fun stuff! We’ll introduce some key best practices, such as making use of types in Java 8, along with high-level architectural details such as the Backends for Frontends pattern.
  • Unit 4: Asynchronous Programming. In the final unit of the introduction section, we’ll bring the conversation back up into architecture and discuss asynchrony in detail. Asynchronous programming is the backbone of event-driven systems, so before we dive into advanced patterns and best practices in Units 5-8 such as clustering, sharding, and event-sourcing, we’ll have a thorough understanding of concurrency and parallelism.

Coming Soon & Special Thanks

We’re going to cover some of the most exciting topics of modern programming in depth over the next 4 units, which will be released shortly.

The series has been produced by RedElastic with the help of IBM and Lightbend. We can’t thank both companies enough, both for the support and the wonderful tools that they produce.

Need help with your Reactive Systems?

RedElastic is considered one of the premier, boutique consulting firms in the space of Intelligent Reactive Systems development. We're a proud Lightbend consulting partner and help companies around the globe with their reactive systems and machine learning initiatives.

If you'd like to discuss an upcoming project that we may be able to assist with, don't hesitate to get in touch. We try to respond to all enquiries within 24 hours!