42 lines
1.8 KiB
Markdown
42 lines
1.8 KiB
Markdown
# Contexto del proyecto para agentes de IA
|
|
|
|
## Resumen rápido
|
|
- Proyecto backend en `.NET 10`.
|
|
- Estructura principal en capas: `Domain`, `Application`, `Infrastructure`.
|
|
- Patrón arquitectónico: `Clean Architecture` con enfoque `CQRS`.
|
|
|
|
## Arquitectura
|
|
- **Domain (`Domain`)**: entidades de negocio puras.
|
|
- **Application (`Application`)**:
|
|
- Casos de uso (comandos/queries y handlers).
|
|
- Contratos (`Application.Contracts`).
|
|
- Configuración de aplicación (`Application.Configuration`).
|
|
- Mensajería orientada a eventos a través de `IEventBus`.
|
|
- **Infrastructure (`Infrastructure`)**:
|
|
- Persistencia y acceso a datos.
|
|
- Integraciones externas (Keycloak, almacenamiento, procesamiento de imágenes).
|
|
- Implementación de mensajería y consumidores.
|
|
|
|
## CQRS / Mediación
|
|
- Se usa **DispatchR** (paquete `DispatchR.Mediator`) como variante de MediatR para orquestar comandos y consultas.
|
|
- Los casos de uso están organizados por feature con handlers dedicados (`Commands`, `Queries`).
|
|
|
|
## Mensajería y workers
|
|
- Se usa **MassTransit** para publicación/consumo de eventos.
|
|
- Broker actual: **RabbitMQ** (`MassTransit.RabbitMQ`).
|
|
- Hay modo de registro para workers con consumidores en `Infrastructure.Messaging.Consumers`.
|
|
- Actualmente existen consumidores como:
|
|
- `ResizePictureConsumer`
|
|
- `RemoveFileConsumer`
|
|
|
|
## Persistencia e integraciones
|
|
- `Entity Framework Core` + proveedor `Npgsql` (PostgreSQL).
|
|
- Integración de identidad con `Keycloak`.
|
|
- Almacenamiento con `AWS S3`.
|
|
|
|
## Notas para agentes
|
|
- Mantener separación de responsabilidades por capa.
|
|
- Evitar lógica de infraestructura dentro de `Application` y `Domain`.
|
|
- Agregar nuevos casos de uso siguiendo el patrón CQRS existente (comando/query + handler).
|
|
- Para nuevas integraciones asíncronas, reutilizar el pipeline de `MassTransit` y la abstracción `IEventBus`.
|