How ceoalmaloco/ms-barriodigital-requests works
BarrioDigital Requests is a municipal-procedure microservice. Residents and staff call its HTTP API: the service validates and creates requests, scopes reads by caller role, and lets authorized officials change status under a row lock. Requests persist in Oracle; selected committed changes asynchronously publish RabbitMQ events. The README documents the event types and integrations, but downstream consumers are outside this repository. Edges are limited to README statements and shown controller, service, repository, and publisher code; unsampled configuration wiring is not asserted.
Main entry points: RequestService.java Request Service · RequestController.java Requests API · EventPublisher.java Event Publisher · MunicipalRequestRepository.java Request Repository
Components 18
HTTP API
- Requests API
src/main/java/cl/duoc/barriodigital/requests/web/RequestController.java - Create Request DTO
src/main/java/cl/duoc/barriodigital/requests/web/dto/CreateRequestDto.java - Status Change DTO
src/main/java/cl/duoc/barriodigital/requests/web/dto/ChangeStatusDto.java - Caller Context
src/main/java/cl/duoc/barriodigital/requests/web/CallerContext.java
Request Domain
- Request Service
src/main/java/cl/duoc/barriodigital/requests/service/RequestService.java - Procedure Rules
src/main/java/cl/duoc/barriodigital/requests/domain/ProcedureTypes.java - Status Transitions
src/main/java/cl/duoc/barriodigital/requests/domain/RequestTransitions.java - Request Status
src/main/java/cl/duoc/barriodigital/requests/domain/RequestStatus.java - Municipal Request
src/main/java/cl/duoc/barriodigital/requests/domain/MunicipalRequest.java
Persistence
- Request Repository
src/main/java/cl/duoc/barriodigital/requests/persistence/MunicipalRequestRepository.java - Oracle Database
Event Integration
- Event Publisher
src/main/java/cl/duoc/barriodigital/requests/messaging/EventPublisher.java - Event Envelope
src/main/java/cl/duoc/barriodigital/requests/messaging/EventEnvelope.java - Rabbit Names
src/main/java/cl/duoc/barriodigital/requests/config/RabbitNamesProperties.java - Rabbit Configuration
src/main/java/cl/duoc/barriodigital/requests/config/RabbitConfig.java
Other components
- Resident / Staff
- RabbitMQ Broker
- Event Consumers
Connections 18
- Resident / Staff → Requests API: calls API
README.md - Requests API → Request Service: delegates to
src/main/java/cl/duoc/barriodigital/requests/web/RequestController.java - Requests API → Create Request DTO: accepts body
src/main/java/cl/duoc/barriodigital/requests/web/RequestController.java - Requests API → Status Change DTO: accepts body
src/main/java/cl/duoc/barriodigital/requests/web/RequestController.java - Requests API → Caller Context: builds context
src/main/java/cl/duoc/barriodigital/requests/web/RequestController.java - Request Service → Caller Context: checks roles
src/main/java/cl/duoc/barriodigital/requests/service/RequestService.java - Request Service → Procedure Rules: validates type
src/main/java/cl/duoc/barriodigital/requests/service/RequestService.java - Request Service → Status Transitions: checks changes
src/main/java/cl/duoc/barriodigital/requests/service/RequestService.java - Status Transitions → Request Status: uses states
src/main/java/cl/duoc/barriodigital/requests/domain/RequestTransitions.java - Request Service → Request Repository: reads and writes
src/main/java/cl/duoc/barriodigital/requests/service/RequestService.java - Request Repository → Municipal Request: queries entities
src/main/java/cl/duoc/barriodigital/requests/persistence/MunicipalRequestRepository.java - Request Repository → Oracle Database: persists requests
README.md - Request Service → Event Publisher: publishes after commit
src/main/java/cl/duoc/barriodigital/requests/service/RequestService.java - Event Publisher → Event Envelope: wraps event
src/main/java/cl/duoc/barriodigital/requests/messaging/EventPublisher.java - Event Publisher → Rabbit Names: selects destination
src/main/java/cl/duoc/barriodigital/requests/messaging/EventPublisher.java - Event Publisher → Rabbit Configuration: uses publisher executor
src/main/java/cl/duoc/barriodigital/requests/messaging/EventPublisher.java - Event Publisher → RabbitMQ Broker: sends messages
src/main/java/cl/duoc/barriodigital/requests/messaging/EventPublisher.java - RabbitMQ Broker → Event Consumers: routes events
README.md