Este microservicio forma parte del ecosistema de Schemify. Fue desarrollado con:
- NestJS como framework base.
- Arquitectura Hexagonal y Domain-Driven Design (DDD).
- Comunicación sincrónica vía gRPC.
- Comunicación asíncrona vía Apache Kafka (Bitnami).
- Prisma ORM y PostgreSQL como capa de persistencia.
- Pruebas end-to-end usando Jest.
$ npm install
# Desarrollo
$ npm run start:dev
# Producción
$ npm run start:prod
Este microservicio está listo para ejecutarse en contenedores. Puedes usar docker-compose
para levantar los servicios:
$ docker compose up --build
Asegúrate de configurar la red externa schemify-kafka-net
si usas otros servicios conectados por Kafka.
# Unitarias
$ npm run test
# End-to-End
$ npm run test:e2e
- gRPC: contratos definidos en
.proto
, compilados conts-proto
, y expuestos como servicios NestJS. - Kafka: Producers y Consumers implementados como servicios inyectables. Soporte para múltiples topics y grupos.
- DDD / Hexagonal:
application/
: DTOs, mappers, servicios y casos de uso.domain/
: entidades, value objects, interfaces de repositorios.infrastructure/
: controladores gRPC/Kafka, adapters de persistencia, módulos.
Puedes monitorear el flujo de mensajes en tiempo real usando:
- Kafka UI (
http://localhost:8081
) - Comando CLI:
docker exec -it kafka1 kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic example-created --from-beginning
Alejandro Díaz
Estudiante de Ingeniería Civil Informática, Universidad de Valparaíso
- GitHub: IxyzDev
- LinkedIn: in/ixyzdev
Este proyecto está licenciado bajo la licencia MIT.
Schemify Microservice - Diseñado para ser simple, robusto y escalable. ✨