A small Spring Boot modular web application built with Spring Modulith. The project implements a conversation-management service with account handling and integration with Google Generative Language APIs. It includes server-side rendered UI (Thymeleaf), an OpenAPI client generation step, observability, and production-ready configuration (Liquibase, RabbitMQ, PostgreSQL).
- Modules: Modular design using Spring Modulith with clearly separated modules:
accounts,conversation, andgoogle_api. - Web UI: Server-side UI using Thymeleaf templates located under
src/main/resources/templates. - API integration: OpenAPI specification included (
src/main/resources/openapi/generativelanguage_googleapis_com.json) and client code generated at build time. - Persistence: PostgreSQL support via HikariCP and Liquibase-based migrations (
src/main/resources/database/changelog). - Messaging & Events: Spring Modulith events and RabbitMQ configuration included for async communication patterns.
- Observability: OpenTelemetry and Micrometer instrumentation pre-configured; management endpoints and metrics are exposed.
- Testing: Test support with JUnit, Testcontainers, and WireMock for integrations.
accounts: Account management, authentication and authority entities.conversation: Conversation domain aggregates (Conversation, Request, Response, Section), command and query facades, and repository layers.google_api: Adapter and internal API call service for Google Generative Language integration.
- Java 21
- Spring Boot + Spring Modulith
- Spring Data JPA, Hibernate
- PostgreSQL + HikariCP
- Liquibase for DB migrations
- RabbitMQ for messaging
- OpenTelemetry (OTel) + Micrometer
- Thymeleaf for server-side rendering
- OpenAPI generator for client code
- Sass (via Gradle plugin) for CSS preprocessing