Skip to content

briancorbinxyz/overengineering-tictactoe-microservices

Repository files navigation

image

Over-Engineering Tic-Tac-Toe Microservices

Enterprise full-stack implementation for Over-Engineered Tic-Tac-Toe (Tic-Tac-Toe in Java deliberately over-engineered to apply features of Java introduced over time.) overengineering tic-tac-toe the game

This uses what I like to call the PERQ stack:

For performant, modern enterprise Java-based cloud native services with Remix/React for server-side rendering.

WIP: Developed both due to my daughter's complaints that she didn't want to use the command-line and as a full-stack intermission/playground to pair with the ongoing blog post: Road to JDK 25 - Over-Engineering Tic-Tac-Toe also serialized to Medium @ Road to JDK 25 - Over-Engineering Tic-Tac-Toe On Medium.

Nothing says over-engineering like a full-stack service implementation just to play tic-tac-toe!

Build Dependencies

  • NodeJS
  • Quarkus

Status

  • Basic 3x3 Tic-Tac-Toe functionality supported: Player vs Player, Player vs Bot
  • Advanced: Sound effects, music, Persistent sound configuration
  • Pending: Tests, Error Handling, Configurability, Administration, Timeouts, Non-standard game setups, Analytics, Cloud configuration, Network play etc.

Services

  1. tictactoe-game-service: gRPC-based service for game logic and game management (Java/Quarkus)
  2. tictactoe-api-gateway: REST service for game api (Java/Quarkus)
  3. tictactoe-web-service: Web service for game UI (Typescript/Remix)

Starting services

After installing the build dependencies.

  1. Start tictactoe-game-service: cd tictactoe-game-service && quarkus dev
  2. Start tictactoe-api-gateway: cd tictactoe-api-gateway && quarkus dev
  3. Start tictactoe-web-service: cd tictactoe-web-service && npm install & npm run dev
  4. Navigate to http://localhost:5173/games
  5. Hit "Start Game" and wait to play vs. bot, Otherwise open another private window to http://localhost:5173/games and Hit "Start Game" again to play, player vs. player.

About

Full-stack over-engineered tic-tac-toe implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published