Incremental Game
Learning Project
Java - Maven - Vaadin Flow - Spring Boot - RabbitMQ
Description
This interactive demo represents a learning exercise designed to familiarize myself with the message oriented middle-ware architecture and asynchronous message passing. The application uses Spring Boot, Spring AMQP using Rabbit and JUnit/Mockito testing dependencies. The front-end uses Vaadin Flow to create the UI using only Java. This demo is in the form of an incremental game which I thought would be a novel approach to a messaging system. While it is a single application, I've replicated a distributed, scalable and loosely coupled system utilizing produced resources to replicate each distributed system. Each resource both consumes other resources and produces an output resource each of which are represented by a message queue to keep track of resource count.
Details
… The resource information informs the demo user of various information about the resource and its production and consumption. The requirements attribute indicates precursor resources required to produce. Upon production, these resources will be consumed from the appropriate message queue. Production time is derived from the rarity, difficulty, production, and tech level attributes of the resource. This represents the amount of time in seconds a focus (thread) will be tied up to produce the resource. Upon successful production the resource will be added to the appropriate message queue ready to be used by other resources….
Read more details in the GitHub repository. See link above.