# si-gon/servicios-sonido-vivo architecture

> Architecture diagram of the GitHub repository si-gon/servicios-sonido-vivo, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/si-gon/servicios-sonido-vivo
- Repository: https://github.com/si-gon/servicios-sonido-vivo

## Overview

Sonido Vivo is a set of four independently deployed Spring Boot services with separate databases. The documented end-to-end capability implemented here is contact-message submission and inbox management; catalog, user, and order services are currently schema-backed skeletons. The README documents their intended domain scope, but their runtime controllers and persistence code are not present in the tree. Edges for those services are therefore limited to documented database configuration and startup/migration behavior; sampled code evidence is concentrated in mensajeria.

Main entry points: [`mensajeria/src/main/java/com/sonidovivo/mensajeria/controller/MensajeriaController.java`](https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/controller/MensajeriaController.java) (Messaging API), [`mensajeria/src/main/java/com/sonidovivo/mensajeria/repository/MensajeriaRepository.java`](https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/repository/MensajeriaRepository.java) (Message repository), [`mensajeria/src/main/java/com/sonidovivo/mensajeria/model/Mensajeria.java`](https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/model/Mensajeria.java) (Message entity), [`catalogo/src/main/java/com/sonidovivo/catalogo/CatalogoApplication.java`](https://github.com/si-gon/servicios-sonido-vivo/blob/main/catalogo/src/main/java/com/sonidovivo/catalogo/CatalogoApplication.java) (Catalog service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_contact["Contact Messaging"]
  node_mensajeria["Messaging API"]
  node_request["Contact request"]
  node_message["Message entity<br/>[Mensajeria.java]"]
  node_message_repo["Message repository"]
  node_message_db[("Messaging database")]
end

subgraph group_catalog["Product Catalog"]
  node_catalog_api["Catalog service"]
  node_catalog_db[("Catalog database")]
end

subgraph group_accounts["User Accounts"]
  node_users_api["User service"]
  node_users_db[("Users database")]
end

subgraph group_orders["Order Fulfillment"]
  node_orders_api["Orders service"]
  node_orders_db[("Orders database")]
end

node_visitor(("Site visitor"))
node_admin(("Administrator"))

node_visitor -->|"submits contact"| node_mensajeria
node_admin -->|"manages inbox"| node_mensajeria
node_mensajeria -->|"validates input"| node_request
node_mensajeria -->|"creates and updates"| node_message
node_mensajeria -->|"queries and saves"| node_message_repo
node_message_repo -->|"persists entities"| node_message
node_mensajeria -.->|"serves contacts"| node_message_db
node_catalog_api -.->|"migrates schema"| node_catalog_db
node_users_api -.->|"migrates schema"| node_users_db
node_orders_api -.->|"migrates schema"| node_orders_db

click node_mensajeria "https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/controller/MensajeriaController.java"
click node_request "https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/dto/ContactoRequest.java"
click node_message "https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/model/Mensajeria.java"
click node_message_repo "https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/repository/MensajeriaRepository.java"
click node_message_db "https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/resources/db/migracion/V1__crear_tabla_contacto.sql"
click node_catalog_api "https://github.com/si-gon/servicios-sonido-vivo/blob/main/catalogo/src/main/java/com/sonidovivo/catalogo/CatalogoApplication.java"
click node_catalog_db "https://github.com/si-gon/servicios-sonido-vivo/blob/main/catalogo/src/main/resources/db/migracion/V2__crear_tabla_producto.sql"
click node_users_api "https://github.com/si-gon/servicios-sonido-vivo/blob/main/usuarios/src/main/java/com/sonidovivo/usuarios/UsuariosApplication.java"
click node_users_db "https://github.com/si-gon/servicios-sonido-vivo/blob/main/usuarios/src/main/resources/db/migracion/V2__crear_tabla_usuario.sql"
click node_orders_api "https://github.com/si-gon/servicios-sonido-vivo/blob/main/pedidos/src/main/java/com/sonidovivo/pedidos/PedidosApplication.java"
click node_orders_db "https://github.com/si-gon/servicios-sonido-vivo/blob/main/pedidos/src/main/resources/db/migracion/V1__crear_tabla_pedido.sql"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_mensajeria,node_request,node_message,node_message_repo,node_message_db toneBlue
class node_catalog_api,node_catalog_db toneAmber
class node_users_api,node_users_db toneMint
class node_orders_api,node_orders_db toneRose
class node_visitor,node_admin toneIndigo
```

## Components

### Contact Messaging

- [Messaging API](https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/controller/MensajeriaController.java): `mensajeria/src/main/java/com/sonidovivo/mensajeria/controller/MensajeriaController.java`
- [Contact request](https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/dto/ContactoRequest.java): `mensajeria/src/main/java/com/sonidovivo/mensajeria/dto/ContactoRequest.java`
- [Message entity](https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/model/Mensajeria.java): `mensajeria/src/main/java/com/sonidovivo/mensajeria/model/Mensajeria.java`
- [Message repository](https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/java/com/sonidovivo/mensajeria/repository/MensajeriaRepository.java): `mensajeria/src/main/java/com/sonidovivo/mensajeria/repository/MensajeriaRepository.java`
- [Messaging database](https://github.com/si-gon/servicios-sonido-vivo/blob/main/mensajeria/src/main/resources/db/migracion/V1__crear_tabla_contacto.sql): `mensajeria/src/main/resources/db/migracion/V1__crear_tabla_contacto.sql`

### Product Catalog

- [Catalog service](https://github.com/si-gon/servicios-sonido-vivo/blob/main/catalogo/src/main/java/com/sonidovivo/catalogo/CatalogoApplication.java): `catalogo/src/main/java/com/sonidovivo/catalogo/CatalogoApplication.java`
- [Catalog database](https://github.com/si-gon/servicios-sonido-vivo/blob/main/catalogo/src/main/resources/db/migracion/V2__crear_tabla_producto.sql): `catalogo/src/main/resources/db/migracion/V2__crear_tabla_producto.sql`

### User Accounts

- [User service](https://github.com/si-gon/servicios-sonido-vivo/blob/main/usuarios/src/main/java/com/sonidovivo/usuarios/UsuariosApplication.java): `usuarios/src/main/java/com/sonidovivo/usuarios/UsuariosApplication.java`
- [Users database](https://github.com/si-gon/servicios-sonido-vivo/blob/main/usuarios/src/main/resources/db/migracion/V2__crear_tabla_usuario.sql): `usuarios/src/main/resources/db/migracion/V2__crear_tabla_usuario.sql`

### Order Fulfillment

- [Orders service](https://github.com/si-gon/servicios-sonido-vivo/blob/main/pedidos/src/main/java/com/sonidovivo/pedidos/PedidosApplication.java): `pedidos/src/main/java/com/sonidovivo/pedidos/PedidosApplication.java`
- [Orders database](https://github.com/si-gon/servicios-sonido-vivo/blob/main/pedidos/src/main/resources/db/migracion/V1__crear_tabla_pedido.sql): `pedidos/src/main/resources/db/migracion/V1__crear_tabla_pedido.sql`

### Other components

- **Site visitor**
- **Administrator**

## Connections

- Site visitor → Messaging API: submits contact (evidence: `README.md`)
- Administrator → Messaging API: manages inbox (evidence: `README.md`)
- Messaging API → Contact request: validates input (evidence: `mensajeria/src/main/java/com/sonidovivo/mensajeria/controller/MensajeriaController.java`)
- Messaging API → Message entity: creates and updates (evidence: `mensajeria/src/main/java/com/sonidovivo/mensajeria/controller/MensajeriaController.java`)
- Messaging API → Message repository: queries and saves (evidence: `mensajeria/src/main/java/com/sonidovivo/mensajeria/controller/MensajeriaController.java`)
- Message repository → Message entity: persists entities (evidence: `mensajeria/src/main/java/com/sonidovivo/mensajeria/repository/MensajeriaRepository.java`)
- Messaging API → Messaging database: serves contacts (evidence: `README.md`)
- Catalog service → Catalog database: migrates schema (evidence: `README.md`)
- User service → Users database: migrates schema (evidence: `README.md`)
- Orders service → Orders database: migrates schema (evidence: `README.md`)
