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.
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.
There are several individual microservices and infrastructure components that make up this app:
- Billboard - A frontend based on JQuery using a Vert.x based runtime
- Event Generator - This service will generate different events such as: users entering the queue, users getting on the ride etc, these events are send out as AMQ messages and itβs using Vert.x as runtime
- Event Store - This service will retrieve events from AMQ and store them to the Data Grid.
- Current Line Updater - This service will register a continuous query with Red Hat Data Grid that will trigger for events that are related to the queue (line). When the queue is updated this service will send a updated version of the current queue to the billboard service via AMQ.
- Queue Length Calculator - This service will calculate the approximate waiting time for a person entering the queue at this point based on the number of persons in queue and how many people the ride can carry. This service will trigger every 10s and then sends an updated queue time to the billboard.
In order to deploy this demo, you need Minishift v1.33.0 or later installed and the minishift
CLI available on your $PATH
.
See the setup instructions