Este proyecto es una versión a menor escala de una arquitectura de microservicios inspirada en Netflix, usando tecnologías modernas como Spring Boot, Apollo Federation y Node.js.
La arquitectura simula un sistema de streaming donde:
- Usuarios pueden hacer queries GraphQL para obtener información de películas, imágenes, recomendaciones, etc.
- Spring Cloud Gateway (API Gateway) recibe las peticiones HTTP y las redirige al GraphQL Federated Gateway (Apollo Gateway).
- Apollo Gateway (Node.js) orquesta y federates varios subgrafos GraphQL implementados como microservicios independientes (DGS con Spring Boot).
- Microservicios DGS (Spring Boot) exponen partes del esquema GraphQL (por ejemplo, catálogo de películas, imágenes, etc.).
- Otros microservicios (recomendaciones, historial, top 10) pueden comunicarse vía gRPC, Kafka, etc.
- El usuario hace una query GraphQL (por ejemplo,
lolomo { title artwork { url } }). - La petición pasa por el Gateway HTTP que lo enruta en este caso a un Gateway Federado Graphql
- Llega al Apollo Gateway, que distribuye la query a los microservicios DGS correspondientes.
- Los microservicios responden con los datos federados mediante Grpc.
Explorar cómo se puede construir una arquitectura moderna de microservicios, integrando servicios Java y Node.js, y experimentando con federación GraphQL y comunicación entre servicios.
