Forums Service es un microservicio de gestión de foros y comunidades para eventos, que permite la interacción entre asistentes y organizadores mediante hilos de discusión y comentarios. El servicio implementa el patrón CQRS utilizando MediatR, sigue los principios de Domain-Driven Design (DDD) con agregados bien definidos, y persiste los datos en MongoDB.
- Fomenta la comunidad: Permite que los asistentes a eventos se conecten, hagan preguntas y compartan información antes, durante y después del evento.
- Centraliza la comunicación: Evita que las conversaciones se dispersen en múltiples plataformas externas (redes sociales, emails, etc.).
- Moderación y control: Los organizadores pueden gestionar el contenido, destacar hilos importantes y cerrar foros cuando el evento finaliza.
- Integración con el ecosistema: Se integra de forma asíncrona con otros microservicios (eventos, notificaciones, moderación) mediante RabbitMQ.
- Arquitectura Interna - Flujo de datos, dependencias externas, modelo de dominio y deuda técnica detectada
- Contrato de API - Endpoints disponibles con ejemplos de request/response
- Guía de Configuración - Variables de entorno, Docker, scripts y comandos útiles
| Categoría | Tecnología |
|---|---|
| Framework | .NET 8 (ASP.NET Core) |
| Arquitectura | Clean Architecture + DDD + CQRS |
| Base de Datos | MongoDB (Driver oficial) |
| Mensajería | RabbitMQ (eventos asíncronos) |
| Mediación | MediatR (Command/Query handlers) |
| Validación | FluentValidation |
| Testing | xUnit, Moq |
| Contenedorización | Docker + Docker Compose |
| API Docs | Swagger/OpenAPI |
Levanta MongoDB + API en contenedores:
docker-compose up -d- API: http://localhost:8082
- Swagger UI: http://localhost:8082/swagger
- Asegúrate de tener MongoDB corriendo localmente
- Actualiza
src/forums-service.Api/appsettings.jsoncon tus credenciales de MongoDB - Ejecuta la API:
dotnet run --project src/forums-service.Api/forums-service.Api.csproj- API: https://localhost:5001
- Swagger UI: https://localhost:5001/swagger
# Compilar la solución
dotnet build
# Ejecutar tests
dotnet test
# Levantar solo MongoDB
docker-compose up -d mongodb
# Ver logs de la API
docker-compose logs -f forums-serviceforums-service/
├── src/
│ ├── forums-service.Api/ # Controllers, Middlewares, Program.cs
│ ├── forums-service.Application/ # Commands, Queries, DTOs, Behaviors
│ ├── forums-service.Domain/ # Entities, Value Objects, Events, Enums
│ └── forums-service.Infrastructure/ # Repositories, MongoDB, RabbitMQ
├── tests/
│ ├── forums-service.Application.Tests/
│ ├── forums-service.Domain.Tests/
│ └── forums-service.Infrastructure.IntegrationTests/
├── docs/ # Documentación técnica
├── docker-compose.yml
└── Dockerfile
Para más información sobre el modelo de dominio, eventos, reglas de negocio y detalles técnicos, consulta la carpeta docs/.