Skip to content
CAI
Software that uses CAICheck a score

sczyh30/vertx-blueprint-microservice

42.1

Weak · 22 September 2026

9.4k

lines of production code

Java

with JavaScript

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.