{"id":18471022,"url":"https://github.com/moonhighway/federation-nation","last_synced_at":"2025-10-07T21:04:07.161Z","repository":{"id":38228462,"uuid":"353801256","full_name":"MoonHighway/federation-nation","owner":"MoonHighway","description":"Student files for Moon Highway's Federation Nation Course","archived":false,"fork":false,"pushed_at":"2022-12-15T14:58:11.000Z","size":842,"stargazers_count":52,"open_issues_count":1,"forks_count":34,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-10T18:22:06.671Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MoonHighway.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-01T19:09:29.000Z","updated_at":"2023-12-02T13:27:06.000Z","dependencies_parsed_at":"2023-01-29T03:30:49.987Z","dependency_job_id":null,"html_url":"https://github.com/MoonHighway/federation-nation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MoonHighway/federation-nation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoonHighway%2Ffederation-nation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoonHighway%2Ffederation-nation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoonHighway%2Ffederation-nation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoonHighway%2Ffederation-nation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MoonHighway","download_url":"https://codeload.github.com/MoonHighway/federation-nation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoonHighway%2Ffederation-nation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278846456,"owners_count":26056111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-06T10:15:35.871Z","updated_at":"2025-10-07T21:04:07.134Z","avatar_url":"https://github.com/MoonHighway.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://cdn.worldvectorlogo.com/logos/apollo-graphql-compact.svg\" width=\"100\" alt=\"apollo logo\" /\u003e\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/GraphQL_Logo.svg/512px-GraphQL_Logo.svg.png\" width=\"100\" alt=\"graphql logo\"/\u003e\n\u003cimg src=\"https://i.imgur.com/migo24P.png\" width=\"100\" alt=\"moon highway logo\"/\u003e\n\u003c/p\u003e\n\n# Apollo GraphQL Federation Nation\n\nWelcome to the Apollo Federation Nation GraphQL Course. We are assuming that you found these files because you are in the course. However, if you found them by some other means, welcome as well!\n\n## Instructor Info\n\n- **Alex Banks**: [Twitter](https://twitter.com/moontahoe) | [Email](mailto:alex@moonhighway.com)\n- **Eve Porcello**: [Twitter](https://twitter.com/eveporcello) | [Email](mailto:eve@moonhighway.com)\n- **Moon Highway Training**: [Moon Highway Website](https://www.moonhighway.com) | [Mailing List](http://bit.ly/moonhighway) | [Articles](https://www.moonhighway.com/articles)\n\n## Slides\n\nYou can find the slides in the root of this project: `slides-federation.html`. Open in your browser to view.\n\n## Clone the Repo\n\nThese files are your starting point. We are going to build and compose a wonderful collection of services. Clone or download these files to get started.\n\n\n## Running the Complete Solution\n\nAfter you have cloned the repo, simply checkout the [Completed Solution](https://github.com/MoonHighway/federation-nation/tree/complete-solution) branch to run the complete solution:\n\n```\ngit checkout complete-solution\n```\n\nThen install the files:\n\n```\nnpm install\n```\n\nThis installer installs the files for each service, in every subfolder. Be patient. \n\n```\nnpm start\n```\n\nOnce the files are installed, `npm start` will start one instance of each service using pm2. You can only run one instance of each service because this course does not use a persistent data layer. It was designed to teach federation, not build your entire architecture. It stores data in memory, so if you spin up more than one instance of each service, you will see some wacky results. \n\nThe services should be running locally on the following ports. Please make sure you are not currently running any other applications locally on any of these ports:\n\n| Service            | URL                   |\n|--------------------|-----------------------|\n| Hue Review Gateway | http://localhost:4000 |\n| Snowtooth Gateway  | http://localhost:5000 |\n| Accounts Service   | http://localhost:4001 |\n| Reviews Service    | http://localhost:4003 |\n| Color Service      | http://localhost:4002 |\n| Lift Service       | http://localhost:5001 |\n| Trail Service      | http://localhost:5002 |\n\nYou can also run the following npm commands:\n\n| Command          | Description                      |\n|------------------|----------------------------------|\n| `npm start`      | Starts services using pm2        |\n| `npm stop`       | Stops all running services       |\n| `npm run delete` | Deletes all services from pm2    |\n| `npm run logs`   | Shows log files for all services |\n\nAdditionally pm2 commands work: `pm2 flush`, `pm2 monit`, etc.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoonhighway%2Ffederation-nation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoonhighway%2Ffederation-nation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoonhighway%2Ffederation-nation/lists"}