{"id":29180495,"url":"https://github.com/saicasm/go-fg-service","last_synced_at":"2025-07-01T20:00:25.963Z","repository":{"id":299697659,"uuid":"1002097544","full_name":"Saicasm/go-fg-service","owner":"Saicasm","description":"Go based graphQL service that follows DDD archiecture","archived":false,"fork":false,"pushed_at":"2025-06-17T20:39:32.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-17T21:38:11.368Z","etag":null,"topics":["go","graphql","grpc","rest"],"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/Saicasm.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,"zenodo":null}},"created_at":"2025-06-14T17:54:11.000Z","updated_at":"2025-06-17T20:39:36.000Z","dependencies_parsed_at":"2025-06-17T21:49:20.023Z","dependency_job_id":null,"html_url":"https://github.com/Saicasm/go-fg-service","commit_stats":null,"previous_names":["saicasm/go-fg-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Saicasm/go-fg-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Saicasm%2Fgo-fg-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Saicasm%2Fgo-fg-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Saicasm%2Fgo-fg-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Saicasm%2Fgo-fg-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Saicasm","download_url":"https://codeload.github.com/Saicasm/go-fg-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Saicasm%2Fgo-fg-service/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263029211,"owners_count":23402354,"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":["go","graphql","grpc","rest"],"created_at":"2025-07-01T20:00:23.221Z","updated_at":"2025-07-01T20:00:25.832Z","avatar_url":"https://github.com/Saicasm.png","language":"Go","readme":"# Golang Web Server Clean Architecture\n## Family Guy Server\n\nA web server built with Go, following clean architecture principles, designed to provide efficient and scalable APIs using GraphQL, gRPC, and REST, with data storage in ClickHouse and message streaming via Kafka.\n\n## Technologies\n\nThis project leverages the following technologies:\n\n- **[Go](https://golang.org/)**: The primary programming language for building the server.\n- **[Gin](https://github.com/gin-gonic/gin)**: A high-performance HTTP web framework for Go.\n- **[GraphQL](https://graphql.org/)**: For flexible and efficient API queries.\n- **[gRPC](https://grpc.io/)**: For high-performance, type-safe remote procedure calls.\n- **[Protobuf](https://protobuf.dev/)**: Protocol Buffers for defining gRPC service contracts and serialization.\n- **[ClickHouse](https://clickhouse.com/)**: A high-performance columnar database for analytics.\n- **[Kafka](https://kafka.apache.org/)**: A distributed streaming platform for handling real-time data.\n- **[Testcontainers](https://testcontainers.org/)**: For integration testing without mocking databases or Kafka.\n- **[Makefile](https://www.gnu.org/software/make/)**: For automating build and deployment tasks.\n\n## Installation\n\nTo set up the project locally, ensure you have Go installed, then follow these steps:\n\n1. Clone the repository:\n   ```sh\n   git clone \u003crepository-url\u003e\n   cd \u003crepository-directory\u003e\n   Install dependencies:\n   ```\n```sh\ngo mod download\nStart the server:\n```\n```sh\n\ngo run main.go\nFor production environments:\nsh\n\n\n\nGO_ENV=production go run main.go\nBuilding for Production\nTo build the project for production:\n\nsh\n\n\n\nmake build\nTo generate SQL files (e.g., for database migrations):\n\nsh\n\n\n\nmake generate-sql\nDocker\nTo build and run the project using Docker:\n\nBuild the Docker image:\nsh\n\n\n\ncd \u003crepository-directory\u003e\ndocker build -t \u003cyouruser\u003e/family-guy-server .\nRun the Docker container:\nsh\n\n\n\ndocker run -d -p 8000:8080 --restart=always --cap-add=SYS_ADMIN --name=family-guy-server \u003cyouruser\u003e/family-guy-server\nPlugins\nThe project currently does not include additional plugins. Future plugins will be documented here with usage instructions.\n\n\nTODOs\nImplement remaining GraphQL API endpoints.\nOptimize gRPC service performance.\nAdd more integration tests using Testcontainers.\nFinalize ClickHouse schema design.\nConfigure Kafka topics and consumers.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaicasm%2Fgo-fg-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaicasm%2Fgo-fg-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaicasm%2Fgo-fg-service/lists"}