meysamhadeli/booking-microservices-java-spring-boot
65.4
Adequate · 22 September 2026
7.6k
lines of production code
Java
primary language
7
measurements over time
What this system is
This system is a Java-based microservices architecture for managing flight and booking operations, structured around an API Gateway that routes and secures requests via OAuth2/JWT. It comprises distinct Booking and Flight services that leverage Spring Boot, JPA, and MongoDB, while coordinating through an event-driven messaging system using RabbitMQ. The codebase includes foundational infrastructure, domain contracts, and testing utilities to support this distributed service mesh.
Features
Added REST client file and project configuration files
The repository now includes a \booking.rest\ file that provides a ready-to-use REST client for testing the API endpoints, including authentication and operations for flights, passengers, and airports. Additionally, \.editorconfig\ and \.gitattributes\ files have been added to standardize code formatting and line endings across the project.
(repo-wide) · high confidence
Added core infrastructure and domain contracts to the building blocks module
The \src/buildingblocks\ area now includes foundational infrastructure and domain contracts. This includes a new event-driven architecture with \EventDispatcher\ and \EventMapper\ interfaces and implementations, alongside specific domain contracts like \BookingCreated\, \FlightCreated\, and \SeatReserved\. Additionally, the module now provides core exception handling classes (e.g., \AppException\, \ValidationException\), base model classes (\AggregateRoot\, \BaseEntity\), and configuration for JPA, Flyway, and Keycloak-based OAuth2 authentication. The directory also contains standard Maven wrapper scripts and configuration files to support the build process.
src/buildingblocks · high confidence
Initial scaffolding for Booking and Flight services
Added the foundational structure for the Booking and Flight microservices. This includes Java source files for domain models (Booking, Trip, PassengerInfo), repositories (JPA and MongoDB), and configuration classes. The Booking service is configured with Spring Boot, integrating with PostgreSQL, MongoDB, RabbitMQ, and gRPC clients for Flight and Passenger services. The Flight service includes similar scaffolding with Thymeleaf support. Both services include Maven wrapper scripts, configuration files (application.yml, application-dev.yml), and database migration scripts.
src/services · high confidence
Introduce API Gateway and new create endpoints for Flight and Booking services
The API Gateway is now available on port 8081, routing requests to the Flight and Booking microservices while enforcing OAuth2/JWT authentication via Spring Security. New REST endpoints have been added: a booking creation endpoint at /api/v1/booking and aircraft/airport creation endpoints at /api/v1/flight/aircraft and /api/v1/flight/airport, each protected by an 'ADMIN' authority requirement.
(repo-wide) · high confidence
Behavioural changes
Added architecture diagram for Java Spring Boot microservices
A new diagram file (assets/booking-microservices-java-spring-boot.drawio) was added to the repository. This visual artifact illustrates the architecture of the booking microservices, detailing the interactions between components such as the API, Keycloak service, and various microservice clusters.
assets · high confidence
Dependencies
Add Maven build configuration for microservices
New Maven POM files have been added for the API gateway, building blocks, and the booking, flight, and passenger services. These configurations establish the project structure and dependencies, including Spring Boot 3.4.1, gRPC 1.57.2, Lombok 1.18.36, and various Spring starters for security, data, and messaging.
(dependencies) · medium 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 65 → 65 (+0.9)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 97 → 98 (+0.3)
- Architecture 100 → 98 (-2.4)
- Maturity 64 → 66 (+2.2)
- Readiness 46 → 56 (+9.9)
- Security 91 → 76 (-15.4)
- Domain Modelling 100 → 74 (-26.0)
Resolved (16)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (10 lines × 2) (src/buildingblocks/src/main/java/buildingblocks/keycloak/KeycloakScopeConverter.java)
- Duplicated block (10 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/flights/features/createflight/CreateFlightCommandValidator.java)
- Duplicated block (10 lines × 6) (src/services/flight/src/main/java/io/bookingmicroservices/flight/aircrafts/models/Aircraft.java)
- Duplicated block (10 lines × 8) (src/services/flight/src/main/java/io/bookingmicroservices/flight/data/jpa/entities/FlightEntity.java)
- Duplicated block (10 lines × 9) (src/services/flight/src/main/java/io/bookingmicroservices/flight/data/jpa/entities/AircraftEntity.java)
- Duplicated block (11 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/flights/features/Mappings.java)
- Duplicated block (11 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/flights/features/Mappings.java)
- Duplicated block (11 lines × 3) (src/buildingblocks/src/main/java/buildingblocks/mediator/Mediator.java)
- Duplicated block (13 lines × 3) (src/buildingblocks/src/main/java/buildingblocks/mediator/Mediator.java)
- Duplicated block (8 lines × 3) (src/buildingblocks/src/main/java/buildingblocks/mediator/Mediator.java)
- No exposed public API
- Scanner failed to run — not a clean result
- Test reliability not included
- single-maintainer — knowledge-concentration (bus factor) risk
New (47)
- 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 × 7) (src/services/flight/src/main/java/io/bookingmicroservices/flight/data/jpa/entities/FlightEntity.java)
- Duplicated block (11 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/aircrafts/models/Aircraft.java)
- Duplicated block (11 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/airports/models/Airport.java)
- Duplicated block (11 lines × 3) (src/buildingblocks/src/main/java/buildingblocks/mediator/Mediator.java)
- Duplicated block (12 lines × 2) (src/services/passenger/src/main/java/io/bookingmicroservices/passenger/data/jpa/entities/PassengerEntity.java)
- Duplicated block (12 lines × 3) (src/buildingblocks/src/main/java/buildingblocks/mediator/Mediator.java)
- Duplicated block (13 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/data/mongo/documents/FlightDocument.java)
- Duplicated block (13–14 lines × 3) (src/buildingblocks/src/main/java/buildingblocks/mediator/Mediator.java)
- Duplicated block (14 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/flights/features/Mappings.java)
- Duplicated block (14 lines × 3) (src/services/flight/src/main/java/io/bookingmicroservices/flight/flights/features/Mappings.java)
- Duplicated block (16 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/data/jpa/entities/FlightEntity.java)
- Duplicated block (17 lines × 2) (src/services/booking/src/main/java/io/bookingmicroservices/booking/bookings/modles/Booking.java)
- Duplicated block (48–54 lines × 2) (src/services/flight/src/main/java/io/bookingmicroservices/flight/flights/features/createflight/CreateFlightCommandValidator.java)
- Duplicated block (5 lines × 2) (src/buildingblocks/src/main/java/buildingblocks/testbase/TestFixture.java)
- Duplicated block (5 lines × 7) (src/services/booking/src/main/java/io/bookingmicroservices/booking/bookings/features/createbooking/CreateBookingController.java)
- Duplicated block (5–9 lines × 3) (src/buildingblocks/src/main/java/buildingblocks/keycloak/KeycloakScopeConverter.java)
- Duplicated block (6 lines × 2) (src/buildingblocks/src/main/java/buildingblocks/mongo/MongoConfiguration.java)
- …and 27 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
meysamhadeli/booking-microservices-java-spring-boot 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 ea481c3ee7ebd405cd7e11d1b1a3ab9b73b5b972 — 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.