{"id":21877631,"url":"https://github.com/rbiedrawa/spring-graphql-federation-microservices-demo","last_synced_at":"2026-04-07T16:32:21.906Z","repository":{"id":162193122,"uuid":"349698723","full_name":"rbiedrawa/spring-graphql-federation-microservices-demo","owner":"rbiedrawa","description":"Spring Boot GraphQL microservices demo that shows how to use DGS framework together with Apollo Federation Server.All applications can be run locally, inside docker or kubernetes cluster.","archived":false,"fork":false,"pushed_at":"2021-04-04T07:13:07.000Z","size":421,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-21T23:43:26.515Z","etag":null,"topics":["apollo-federation","apollo-server","dgs-framework","docker","docker-compose","gradle","graphql","kubernetes","microservices","netflix-oss","node","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rbiedrawa.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-20T10:54:37.000Z","updated_at":"2024-07-25T18:30:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"ae2d1c2c-b1a2-4e83-ac27-c444acc63874","html_url":"https://github.com/rbiedrawa/spring-graphql-federation-microservices-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rbiedrawa/spring-graphql-federation-microservices-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-graphql-federation-microservices-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-graphql-federation-microservices-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-graphql-federation-microservices-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-graphql-federation-microservices-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rbiedrawa","download_url":"https://codeload.github.com/rbiedrawa/spring-graphql-federation-microservices-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rbiedrawa%2Fspring-graphql-federation-microservices-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31520511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apollo-federation","apollo-server","dgs-framework","docker","docker-compose","gradle","graphql","kubernetes","microservices","netflix-oss","node","spring-boot"],"created_at":"2024-11-28T08:09:49.132Z","updated_at":"2026-04-07T16:32:21.884Z","avatar_url":"https://github.com/rbiedrawa.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring Boot GraphQL Federation Microservices (PoC)\n\nSpring Boot GraphQL microservices demo that shows how to use DGS framework together with Apollo Federation Server.\n\nAll applications can be run locally, inside docker or kubernetes cluster.\n\n## Table of Content\n\n- [Services](#services)\n- [Architecture](#architecture)\n- [Getting Started](#getting-started)\n  * [Installation](#installation)\n  * [Usage](#usage)\n- [Deployment](#deployment)\n  * [Build](#build)\n  * [Docker](#docker)\n  * [Kubernetes](#kubernetes)\n- [References](#references)\n- [License](#license)\n\n\n## Services\n\n* [Apollo Gateway](./services/gateway) - Apollo Server acting as the Federated Gateway.\n* [Customer Service](./services/customer-service) - Spring Boot GraphQL application providing the federated Customer type.\n* [Review Service](./services/review-service) - Spring Boot GraphQL application that extends the Customer type with reviews.\n\n\n## Architecture\n\n![k8s-dashboard](./_docs/img/architecture.png)\n\n## Getting Started\n\n### Installation\n\nPlease refer to the individual readme files on instructions of how to run the services.\n\n###  Usage\n* Start services.\n\n* Open [GraphQL playground GUI](http://localhost:4000/).\n\n* Write the following query and tests the result:\n  -  Find all customers with reviews (federated query)\n    ```\n    query {\n      customers{\n        id\n        firstName\n        reviews{\n          id\n          rating\n          message\n        }\n      }\n    }\n    ```\n  [e.g Federation Query Response](./_docs/img/federation-query.png)\n\n  - Create new customer\n    ```\n    mutation {\n      addCustomer(customer: { firstName: \"New User\" }) {\n        id\n        firstName\n      }\n    }\n    ```\n\n## Deployment\n\n### Build\n\nYou can build all the services by running the `buildDockerImages.sh` on Mac/Linux systems.\n\n### Docker\n\nDocker compose file with instructions are kept in [docker](deployment/docker) subdirectory.\n\n### Kubernetes\n\nKubernetes manifests with instructions are kept in [k8s](deployment/k8s) subdirectory.\n\n## References\n\n* [GraphQL](https://graphql.org/)\n* [Introduction to Apollo Server](https://www.apollographql.com/docs/apollo-server/)\n* [Introduction to Apollo Federation](https://www.apollographql.com/docs/federation/)\n* [DGS framework](https://netflix.github.io/dgs/)\n* [Moving beyond REST: GraphQL and Java \u0026 Spring by Pratik Patel @ Spring I/O 2019](https://www.youtube.com/watch?v=iHxu2bq3fxI)\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frbiedrawa%2Fspring-graphql-federation-microservices-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frbiedrawa%2Fspring-graphql-federation-microservices-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frbiedrawa%2Fspring-graphql-federation-microservices-demo/lists"}