sczyh30/vertx-blueprint-microservice
42.1
Weak · 22 September 2026
9.4k
lines of production code
Java
with JavaScript
7
measurements over time
What this system is
This system is a microservices-based online shopping platform that manages user accounts, product inventory, orders, and store operations. It utilizes a reactive architecture with an API Gateway for authentication and routing, while individual services communicate via an event bus and expose REST APIs. The infrastructure includes Redis for caching and counters, MongoDB for store data, and an ELK stack for centralized logging and monitoring.
Features
API Gateway adds HTTPS, Keycloak OAuth2 authentication, and integrated SPA frontend
The API Gateway now serves an AngularJS single-page application (SPA) for online shopping, including views for product listings, cart, orders, and account management. The gateway enforces HTTPS and integrates Keycloak for authentication via OAuth2 (AUTH\_CODE flow), handling login, logout, and session management. Configuration files for Docker and local environments are provided with Keycloak and circuit-breaker settings. Logging is configured via Log4j2 to send logs asynchronously to a GELF/Logstash endpoint.
api-gateway/src · high confidence
Add Docker Compose configuration for the microservices architecture
The docker directory now includes a complete environment for running the application locally. A new build.sh script automates building all microservice images, while run.sh orchestrates the startup of the entire cluster, including persistence layers (MySQL, MongoDB, Redis), authentication (Keycloak), and the ELK stack (Elasticsearch, Logstash, Kibana) for logging. The docker-compose.yml file defines the service topology, linking microservices to their required dependencies and exposing necessary ports.
docker · high confidence
Add Docker support and service proxy generation for the shopping cart microservice
The shopping cart microservice now includes a Dockerfile and environment-specific configuration files (docker.json, local.json) to support containerized deployment. Additionally, the codebase has been updated to include generated service proxy classes and RxJava wrappers for the Checkout and ShoppingCart services, enabling event bus communication and reactive programming patterns for cart operations.
shopping-cart-microservice · high confidence
Add cache infrastructure service for global counter and cache management
A new cache infrastructure component has been introduced, providing global cache management and a global counter service backed by Redis. The service exposes event bus methods for incrementing, retrieving, and resetting counters, with generated proxy handlers and RxJava wrappers for asynchronous and reactive consumption. Configuration files define Redis host settings for Docker and local environments, and logging is configured to send logs asynchronously to a GELF/ELK stack.
cache-infrastructure · high confidence
Add monitor dashboard with metrics, logs, and service discovery views
The monitor dashboard now provides a web interface for monitoring microservices. It displays a list of registered services with their status, shows real-time metrics via charts (including event bus throughput and order processing), and displays published logs. The backend exposes a REST endpoint for service discovery and streams metrics and logs via the event bus.
monitor-dashboard/src/main · high confidence
Add store microservice with REST API and MongoDB persistence
The store microservice is introduced, providing a REST API for managing online stores. The implementation includes a \Store\ data object, a \StoreCRUDService\ interface for CRUD operations, and a \StoreCRUDServiceImpl\ that persists store data to MongoDB. A \RestStoreAPIVerticle\ exposes endpoints to save, retrieve, and close stores, while \StoreVerticle\ wires the service and deploys the REST API.
store-microservice/src/main/java · high confidence
Added common microservice base classes and utilities
Added new base classes for microservices, including BaseMicroserviceVerticle and RestAPIVerticle, which provide service discovery, circuit breaker, and REST API helper methods. A functional utility class (Functional) was added to combine multiple Futures into a single Future of a list, and a ConfigRetrieverHelper was introduced to manage configuration retrieval via RxJava Observables. Additionally, a JdbcRepositoryWrapper was added to simplify JDBC operations, and AsciiDoc files were added to document the new data objects and enums.
microservice-blueprint-common/src · high confidence
Added user account microservice with REST and event bus APIs
The account-microservice now includes a complete user account management system. This introduces an Account data object, an AccountService interface for event bus communication, and a JdbcAccountServiceImpl for database operations. A UserAccountVerticle deploys the service, while a RestUserAccountAPIVerticle exposes HTTP endpoints for adding, retrieving, updating, and deleting user accounts. The service supports both event bus and REST API interactions for user account management.
account-microservice/src/main/java · high confidence
Generated Account service proxies and converters
New generated files have been added to the account-microservice, including the AccountConverter for JSON serialization, the AccountServiceVertxEBProxy for event bus communication, the AccountServiceVertxProxyHandler for server-side routing, and the RxJava-wrapped AccountService interface. These additions provide the runtime support for the account service, enabling data conversion, remote procedure calls, and reactive programming patterns.
account-microservice/src/main/generated · high confidence
Generated Vert.x service proxies and converters for the Order microservice
New auto-generated Vert.x codegen artifacts have been added to the order-microservice, including JSON converters for Order and CheckoutResult, an event-bus proxy handler (OrderServiceVertxProxyHandler) that routes incoming messages to the OrderService implementation, a corresponding client-side proxy (OrderServiceVertxEBProxy) for remote calls, and an RxJava wrapper (OrderService) exposing reactive Single/Observable methods for operations like createOrder, retrieveOrder, and retrieveOrdersForAccount.
order-microservice/src/main/generated, store-microservice/src/main/generated · high confidence
Initial release of the inventory microservice
The inventory microservice is introduced, providing HTTP endpoints to increase, decrease, and retrieve product inventory counts. The service is backed by a Redis store and includes configuration files for Docker and local environments, a Dockerfile for containerization, and an integration test suite.
inventory-microservice · high confidence
Introduce ELK-based logging for the Shopping UI service
The Shopping UI service now sends logs to an ELK stack via Logstash using GELF over UDP. Logs are routed asynchronously to a Logstash endpoint at 'udp:logstash' on port 12201, ensuring non-blocking log delivery. The configuration is defined in the new log4j2.xml and the Dockerfile sets up the environment for this logging integration.
shopping-ui · medium confidence
Introduce ELK-based logging for the product microservice
Added configuration for sending logs to an ELK stack via Logstash. The \log4j2.xml\ file now configures a GELF appender that sends logs to a Logstash host at \udp:logstash:12201\. The configuration uses an asynchronous appender (\gelf\_async\) to ensure non-blocking log processing, improving the performance and reliability of the product microservice's logging pipeline.
product-microservice/src · high confidence
Introduce order microservice with REST and event bus APIs
The order microservice is now available, providing a REST API for retrieving orders by ID or user account, alongside an event bus service for processing raw order messages. The implementation includes data models for orders and checkout results, a JDBC-backed service for persistence, and a dispatcher that handles inventory updates via REST calls to the inventory service.
order-microservice/src/main/java · high confidence
Behavioural changes
Introduce ELK-based logging for the payment microservice
The payment microservice now sends logs to an ELK stack via GELF over UDP to a Logstash endpoint at 'udp:logstash:12201'. The logging configuration uses an asynchronous GELF appender, ensuring that log output does not block the application thread, and the root logger is configured to send all messages at INFO level or higher to this remote logging destination.
payment-microservice · high confidence
Dependencies
Upgrade to Vert.x 3.4.1
The project has been updated to use Vert.x version 3.4.1. This update applies to the parent POM and all microservice modules, ensuring consistent dependency management and access to the latest features and fixes in the Vert.x framework.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 45 → 42 (-3.0)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 97 → 95 (-1.6)
- Architecture 100 → 90 (-10.1)
- Maturity 50 → 49 (-0.8)
- Readiness 23 → 21 (-1.9)
- Security 85 → 70 (-15.3)
- Accessibility 64 → 61 (-2.8)
Resolved (25)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (inventory-microservice/src/main/java/io/vertx/blueprint/microservice/inventory/InventoryRestAPIVerticle.java)
- Duplicated block (10 lines × 3) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/service/JdbcRepositoryWrapper.java)
- Duplicated block (6 lines × 6) (account-microservice/src/main/java/io/vertx/blueprint/microservice/account/api/RestUserAccountAPIVerticle.java)
- Duplicated block (7 lines × 2) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/rx/BaseMicroserviceRxVerticle.java)
- Duplicated block (7 lines × 2) (order-microservice/src/main/java/io/vertx/blueprint/microservice/order/api/RestOrderAPIVerticle.java)
- Duplicated block (8 lines × 2) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/rx/RestAPIRxVerticle.java)
- Duplicated block (9 lines × 3) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/service/JdbcRepositoryWrapper.java)
- LLM evaluation failed
- Medium IaC: CKV_DOCKER_3 (account-microservice/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (api-gateway/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (cache-infrastructure/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (inventory-microservice/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (monitor-dashboard/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (order-microservice/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (product-microservice/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (shopping-cart-microservice/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (shopping-ui/Dockerfile)
- Medium IaC: CKV_DOCKER_3 (store-microservice/Dockerfile)
- …and 5 more
New (62)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/RestAPIVerticle.java)
- Duplicated block (10 lines × 2) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/service/JdbcRepositoryWrapper.java)
- Duplicated block (10 lines × 3) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/service/JdbcRepositoryWrapper.java)
- Duplicated block (41 lines × 2) (order-microservice/src/main/java/io/vertx/blueprint/microservice/order/CheckoutResult.java)
- Duplicated block (5 lines × 2) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/RestAPIVerticle.java)
- Duplicated block (5 lines × 4) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/RestAPIVerticle.java)
- Duplicated block (5 lines × 6) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/RestAPIVerticle.java)
- Duplicated block (6 lines × 2) (cache-infrastructure/src/main/java/io/vertx/blueprint/microservice/cache/impl/DefaultCounterServiceImpl.java)
- Duplicated block (6 lines × 2) (inventory-microservice/src/main/java/io/vertx/blueprint/microservice/inventory/InventoryRestAPIVerticle.java)
- Duplicated block (6 lines × 2) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/BaseMicroserviceVerticle.java)
- Duplicated block (7 lines × 2) (account-microservice/src/main/java/io/vertx/blueprint/microservice/account/UserAccountVerticle.java)
- Duplicated block (7 lines × 2) (product-microservice/src/main/java/io/vertx/blueprint/microservice/product/ProductVerticle.java)
- Duplicated block (7–8 lines × 6) (account-microservice/src/main/java/io/vertx/blueprint/microservice/account/api/RestUserAccountAPIVerticle.java)
- Duplicated block (9 lines × 2) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/BaseMicroserviceVerticle.java)
- Duplicated block (9 lines × 2) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/RestAPIVerticle.java)
- Duplicated block (9 lines × 3) (account-microservice/src/main/java/io/vertx/blueprint/microservice/account/impl/JdbcAccountServiceImpl.java)
- Duplicated block (9 lines × 3) (microservice-blueprint-common/src/main/java/io/vertx/blueprint/microservice/common/service/JdbcRepositoryWrapper.java)
- …and 42 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
sczyh30/vertx-blueprint-microservice was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 9d960641cb80b63d0e6a559279f1fc2c5a165e3e — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-90d5d2fe38ee.