Library resource catalog (seats, rooms, equipment) for the Library Booking System. Serves filtered search and admin CRUD, publishes resource.events, and listens to booking events to keep availability aligned without coupling every read to booking-service.
flowchart LR
Client --> GW[api-gateway]
GW --> CAT[catalog-service]
CAT --> PG[(catalog_db)]
BOOKQ[booking.events] --> CAT
CAT --> RESQ[resource.events]
Base path: http://localhost:8080/api/resources
| Method | Path | Description |
|---|---|---|
| GET | / |
List resources (type, floor, status, search) |
| GET | /{id} |
Resource by id |
| POST | / |
Create resource (admin) |
| PUT | /{id} |
Update resource (admin) |
| DELETE | /{id} |
Delete resource (admin) |
| GET | /health |
Health check |
- Java 17, Spring Boot 3.5
- JPA (PostgreSQL), AMQP, Spring Security, AOP, JJWT
- common-aspects
| Variable | Purpose |
|---|---|
DB_* |
PostgreSQL (catalog_db in Compose) |
RABBITMQ_* |
Consume booking events; publish resource events |
JWT_SECRET, JWT_EXPIRATION |
Protected routes |
HTTP port 3003.
cd docker-compose
docker compose up -d catalog-service- booking-service — reservations drive availability updates
- realtime-gateway — live resource updates to clients
- Documentation — API reference