Skip to content
Reactica, a thrilling roller coaster ride through another dimension featuring Red Hat Reactive Technologies
Java HTML Shell CSS
Branch: master
Clone or download
tqvarnst Merge pull request #2 from redhat-developer-demos/master
Updated some links in the README.
Latest commit 6b48fe6 Jul 30, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.mvn/wrapper add Maven wrapper Aug 23, 2018
amqp-verticle removed proton dependency Jul 4, 2019
billboard
current-line-updater Fixed the following: Sep 24, 2018
domain-model Merge branch 'master' of github.com:reactica/rhte-demo Sep 16, 2018
event-generator add a button and code to clear the queue Oct 9, 2018
event-store Added completedRideTime and renamed the enterTime to enterQueueTime Sep 14, 2018
queue-length-calculator Merge branch 'master' of github.com:reactica/rhte-demo Sep 16, 2018
setup Fixed three broken links Jul 19, 2019
vertx-data-grid-client Updated to Vert.x 3.7.1-redhat-00012 Jul 2, 2019
vertx-examples Restructure maven project Sep 7, 2018
.editorconfig setup indentation Aug 23, 2018
.gitignore
README.md Updated README links Jul 29, 2019
mvnw add Maven wrapper Aug 23, 2018
mvnw.cmd add Maven wrapper Aug 23, 2018
pom.xml Updated to Vert.x 3.7.1-redhat-00012 Jul 2, 2019

README.md

Coderland logo

Reactica

Overview

This is a demo of a ride queueing system for Coderland, an amusement park built with the latest and greatest technologies to provide and innovative and compelling guest experience.

The name of the ride is Reactica, a thrilling roller coaster ride through another dimension. It is the basis of our tutorial Reactica: reactive programming and Vert.x.

The demo showcases the new Red Hat Application Runtimes (Red Hat OpenShift Container Platform with Red Hat Application Services) in the context of reactive systems development, showing how components work together to form truly distributed/reactive systems (not just reactive programming). It utilizes several components from Red Hat, including Eclipse Vert.x, Red Hat Data Grid, and Red Hat AMQ.

Architecture


The architecture of the Reactica system looks like this:

Architecture Screenshot

There are several individual microservices and infrastructure components that make up this app:

  1. Billboard UI - A frontend based on JQuery using a Vert.x based runtime
  2. Event Generator (Users and Rides in the diagram) - This service generates different events such as: users entering the queue, users getting on the ride etc, these events are sent out as AMQ messages using Vert.x as its runtime
  3. Event Store - This service retrieves events from AMQ and stores them to the Data Grid.
  4. Current Line Updater - This service registers a continuous query with Red Hat Data Grid that triggers for events that are related to the line for the ride. When the line is updated, this service sends an updated version of the current line to the billboard service via AMQ.
  5. Queue Length Estimate - This service calculates the approximate waiting time for a person entering the line at this point based on the number of persons in line and how many people the ride can carry. This service triggers every 10 seconds and sends an updated wait time to the billboard.

User interface

The main UI looks like this:

Demo Screenshot

This panel shows several users waiting in line (in blue), several users currently on the ride (in yellow), and one person who has completed the ride (in green).

Prerequisites

To deploy this demo, you need Minishift v1.33.0 or later installed and the minishift CLI available on your $PATH. You also need curl and Maven v3.5.3 or later.

Deploying the Demo

See the setup instructions.

Resources

Coderland's tutorial Reactica: reactive programming and Vert.x features a complete, sophisticated example of a system of reactive Vert.x microservices that work together.

🎁 REPO: The Reactica roller coaster source code (this page)

📄 Reactica: reactive programming and Vert.x tutorial

🎬 VIDEO: An overview of the Reactica roller coaster

Part 1: An introduction to reactive programming and Vert.x

📄 ARTICLE: An introduction to reactive programming and Vert.x

🎬 VIDEO: Reactive programming and Vert.x

Part 2: Building a reactive system

📄 ARTICLE: Building a reactive system

🎬 VIDEO: Reactica architecture

Part 3: A reactive system in action

📄 ARTICLE: A reactive system in action

🎬 VIDEO: Deploying Reactica

Other useful links

📖 Clement Escoffier's excellent book Building Reactive Microservices in Java, available for free from the Red Hat Developer Program

📄 Andre Staltz's The introduction to Reactive Programming you've been missing

📄 The Reactive Manifesto

📄 The Vert.x home page

🎁 REPO: The vertx-starter source code, a simple Vert.x verticle that shows the basics of how Vert.x works


Coderland 🎢🚀🎡 is an imaginary theme park for learning, developer training, and Red Hat software. See the Red Hat Developer Program for more great stuff.

You can’t perform that action at this time.