{"id":20710310,"url":"https://github.com/kavirajk/bookshop","last_synced_at":"2025-08-30T18:06:37.995Z","repository":{"id":71631213,"uuid":"83350073","full_name":"kavirajk/bookshop","owner":"kavirajk","description":"An attempt to write an Cloud Native web services following microservices patterns. Primary Language is Go","archived":false,"fork":false,"pushed_at":"2018-05-08T21:59:06.000Z","size":4046,"stargazers_count":9,"open_issues_count":10,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-30T18:04:23.345Z","etag":null,"topics":["elegant","go","go-kit","monolithic","services","web"],"latest_commit_sha":null,"homepage":"","language":"Go","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/kavirajk.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-27T19:49:55.000Z","updated_at":"2023-04-04T10:36:46.000Z","dependencies_parsed_at":"2023-05-13T01:45:12.718Z","dependency_job_id":null,"html_url":"https://github.com/kavirajk/bookshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kavirajk/bookshop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kavirajk%2Fbookshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kavirajk%2Fbookshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kavirajk%2Fbookshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kavirajk%2Fbookshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kavirajk","download_url":"https://codeload.github.com/kavirajk/bookshop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kavirajk%2Fbookshop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272885303,"owners_count":25009609,"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-08-30T02:00:09.474Z","response_time":77,"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":["elegant","go","go-kit","monolithic","services","web"],"created_at":"2024-11-17T02:11:07.230Z","updated_at":"2025-08-30T18:06:37.952Z","avatar_url":"https://github.com/kavirajk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BookShop\n\nThis repo try to demonstrates building a \"real-world\" web services in go. It is used only for learning purposes.\n\n## Description\n\nWe focus on building the services in monolithic way first. We iterate over to split this monolithic to microservices that can be deployed separately.\n\nBookshop consists of following services\n* Auth  - Login, Signup, ResetPassword, Impersonate and Forgot password\n* Catalog - View, filter, search books\n* Order  - Place, View and Cancel Orders\n* Payment - Add/Edit payment method and Make payment.\n* Notification - Email and SMS notifications.\n\n### Roadmap\n- [ ] Elegant monolitic exposing REST endpoints for all the services - v1.0\n- [ ] Add async task queue support - v2.0\n- [ ] Catalog search via elastic search - v3.0\n- [ ] Split to microservices. grpc transport between microservices and single API gateway - v4.0\n- [ ] Dockerize all the services - v5.0\n- [ ] Introduce service mesh between services - v6.0\n- [ ] Make services deployable via kubernetes - v7.0\n- [ ] Add service discovery support - v8.0\n- [ ] Monitoring via Prometheus and Grafana - v9.0\n- [ ] Request tracing - v10.0\n- [ ] Log aggregation via \"OK log\" - v11.0\n\n### Organization\n\nWe will stick to Domain Driven Design as much as possible.\n\n```\nbookshop\n├── build                  # Compiled files\n├── cmd                    # Main entry points\n    ├── bookstore\n├── pkg                    # Domain related packages\n    ├── auth\n    ├── catalog\n    └── order\n    └── payment\n    └── notification\n└── resource               # High-level packages. Can be used by any domain \n\t└── db\n└── vendor\n└── Gopkg.toml\n└── Gopkg.yaml\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkavirajk%2Fbookshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkavirajk%2Fbookshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkavirajk%2Fbookshop/lists"}