This is the microservices-based concept of the InfinityShopping e-commerce shop generator, originally implemented as a monolithic JHipster application.
The purpose of this repository is to learn and demonstrate microservices architecture using JHipster, Spring Boot, and Consul, while offering a solid base for scaling the monolith into a full microservices solution.
- Learn JHipster’s microservice architecture by building from real generated code.
- Compare service discovery strategies (Spring Cloud Consul vs Eureka).
- Demonstrate modern DevOps architecture using Git submodules for separation of concerns.
| Service | Port | Description |
|---|---|---|
| Gateway | 8080 |
Front door, authentication & routing |
| Store | 8081 |
Basic e-commerce logic (CRUD) |
| Notification | 8082 |
Notification microservice (CRUD) |
| Consul | 8500 |
Service registry & config server |
All services are generated using JHipster and can be extended or regenerated using JHipster commands.
This diagram illustrates the concept of InfinityShopping microservices:
This GIF shows how the Gateway at localhost:8080 dynamically routes requests to the Store and Notification microservices:

Each microservice is stored in its own Git repository and linked here as a submodule, allowing for independent development.
git clone --recurse-submodules https://github.com/PiotrZielonka/infinityshopping-microservices-consul-product-concept.git
⚠️ This repository is not meant for direct commits to microservices. It’s a wrapper to bring submodules together. To make changes:
- Go to the specific microservice repo (e.g.infinityshopping-microservice-consul-store)
- Make your changes and commit there:
- Return to this project and run:
git submodule update --remote --merge https://github.com/PiotrZielonka/infinityshopping-microservice-consul-store.git- You can also transfer changes from all microservices at once run:
git submodule update --remote --merge| Tool | Version |
|---|---|
| Docker | 28.0.4 (Desktop) |
| Java | OpenJDK 17 |
| Maven | 3.8.1 |
| Node.js | 22.15.1 (x64) |
| PostgreSQL | Installed locally |
- This project has been tested with Docker Desktop version 28.0.4, but it should work with any newer release.
- Node.js 22.15.1 (x64) is verified to work, but other versions may also be compatible.
- PostgreSQL must be installed locally for database setup and connection.
By default, JHipster configures PostgreSQL in Docker, but this version connects to a locally installed PostgreSQL instance.
To make sure you are running with the correct setup:
-
Start Docker (required for some JHipster containers).
-
Delete any PostgreSQL Docker containers after startup.
- This avoids conflict since local DB connection is used (not Docker).
-
Make sure the local DB configuration matches these commits or configure database connection:
- Start the Gateway on
localhost:8080 - Start the Store Microservice on
localhost:8081 - Start the Notification Microservice on
localhost:8082 - In each project directory (gateway, store and notification), run the following command:
./mvnwIf you have questions or want to connect:
- Check out the monolith version: InfinityShopping Monolith
- Open an issue on this repository
This is a learning playground but also a powerful concept prototype for real-world microservice systems.
