- Introduction
- Microservices Architecture
- Interactions Between Microservices
- Quick Start
- Video Walkthru
- System Architecture
- Code Logic and Flow
- Generated Statistics
- Areas of Improvement
- Known Bugs and Issues
- References and Citations
A video walkthru explaining the entire system, including microservices interactions and deployment https://youtu.be/wrUE1sUKhKw
This project focuses on a distributed graph-based simulation system, designed to model and analyze interactions in a networked environment. The system is based on three interconnected microservices, each serving a distinct role within the broader architecture. The simulation's primary objective is to understand dynamic interactions within a graph structure, particularly focusing on strategic movements and decision-making processes.
The simulation uses three interconnected microservices:
- Game Logic Service (GLS): Manages game logic, including starting games and processing moves.
- Graph Query Service (GQS): Handles queries related to game state and move possibilities.
- Player Management Service (PMS): Manages player sessions and interactions.
Each service is designed to function independently while seamlessly communicating with others.
- GLS is the core service where the game logic resides. It communicates with GQS to fetch game states and calculate move possibilities.
- PMS handles player interactions, starting new games via GLS, and fetching game states and possible moves from GQS.
- GQS interacts with GLS to fetch the current game state and then computes the potential moves and their confidence scores based on this state.
- Java 8
- Scala 2.13.x
- sbt 1.9.x
- Clone the repository for each service.
- Modify the Conf file based on your paths and other needs
- Run using
sbt clean compile run
- Scala: Programming language for service development.
- Akka HTTP: Toolkit for building HTTP-based services.
- Docker: Containerization platform.
- AWS: For cloud deployment and scalability.
- Load Balancing: Implementing a load balancer to distribute requests evenly across service instances.
- Fault Tolerance: Enhancing system robustness through advanced error handling and recovery mechanisms.
- UI/UX: Developing a user interface for easier interaction and monitoring of the simulation.
This project is licensed under the Apache 2.0 License. See LICENSE for more details.
The badges and other specific details can be adjusted as per the actual project specifications.