{"id":20103812,"url":"https://github.com/ancientlore/fanout","last_synced_at":"2026-05-12T17:41:00.657Z","repository":{"id":144866796,"uuid":"170908144","full_name":"ancientlore/fanout","owner":"ancientlore","description":"A demo showing how to process incoming requests in parallel.","archived":false,"fork":false,"pushed_at":"2023-02-04T18:06:31.000Z","size":184,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T04:42:24.102Z","etag":null,"topics":["concurrency","demo","golang"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/ancientlore.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":"2019-02-15T18:10:26.000Z","updated_at":"2023-02-04T18:06:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"4dc919a7-97d6-4d75-9334-7b746009904b","html_url":"https://github.com/ancientlore/fanout","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ancientlore%2Ffanout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ancientlore%2Ffanout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ancientlore%2Ffanout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ancientlore%2Ffanout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ancientlore","download_url":"https://codeload.github.com/ancientlore/fanout/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241543390,"owners_count":19979523,"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","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":["concurrency","demo","golang"],"created_at":"2024-11-13T17:38:34.853Z","updated_at":"2026-05-12T17:40:55.622Z","avatar_url":"https://github.com/ancientlore.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fanout\n\nA demo showing how to process incoming requests in parallel.\n\nUseful to learn about:\n\n* Concurrent execution (goroutines)\n* Synchronization and messaging (channels)\n* Multi-way concurrent control (`select`)\n* Completing or canceling gracefully (`context.Context`)\n\n\n## Build and Run\n\n    $ go get github.com/ancientlore/fanout\n    $ fanout\n\n## Presentation\n\nTo run the presentation, use the [present](https://godoc.org/golang.org/x/tools/present) tool.\n\nInstall present:\n\n    $ go get golang.org/x/tools/cmd/present\n\nRun the presentation:\n\n    $ present -notes -play\n\nNavigate to http://127.0.0.1:3999/fanout.slide to see the presentation. Use the notes view by pressing `N` to see presenter notes.\n\n## Good reading\n\n* https://blog.golang.org/pipelines\n* https://blog.golang.org/context\n* https://golang.org/pkg/context/\n* https://blog.golang.org/concurrency-is-not-parallelism\n* https://talks.golang.org/2012/concurrency.slide\n* https://swtch.com/~rsc/thread/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fancientlore%2Ffanout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fancientlore%2Ffanout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fancientlore%2Ffanout/lists"}