{"id":24824332,"url":"https://github.com/nidea1/go-gavel","last_synced_at":"2026-05-08T10:34:28.953Z","repository":{"id":274876346,"uuid":"924293428","full_name":"nidea1/go-gavel","owner":"nidea1","description":"goGavel is a gRPC-based online auction platform built with Go, structured as a microservices monorepo. This project is developed for learning and self-improvement.","archived":false,"fork":false,"pushed_at":"2025-02-24T20:49:43.000Z","size":323,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-27T23:05:02.425Z","etag":null,"topics":["auction","auctions","clean-architecture","cqrs","cqrs-pattern","docker","event-driven-architecture","event-driven-microservices","gavel","go","golang","grpc","kafka","microservice","microservices"],"latest_commit_sha":null,"homepage":"","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/nidea1.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,"zenodo":null}},"created_at":"2025-01-29T18:45:09.000Z","updated_at":"2025-02-24T20:49:46.000Z","dependencies_parsed_at":"2025-06-27T23:05:05.322Z","dependency_job_id":"aa07254d-85d9-4671-82ec-22accb9f6aa2","html_url":"https://github.com/nidea1/go-gavel","commit_stats":null,"previous_names":["nidea1/go-gavel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nidea1/go-gavel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidea1%2Fgo-gavel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidea1%2Fgo-gavel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidea1%2Fgo-gavel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidea1%2Fgo-gavel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nidea1","download_url":"https://codeload.github.com/nidea1/go-gavel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidea1%2Fgo-gavel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32776882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["auction","auctions","clean-architecture","cqrs","cqrs-pattern","docker","event-driven-architecture","event-driven-microservices","gavel","go","golang","grpc","kafka","microservice","microservices"],"created_at":"2025-01-30T20:29:24.749Z","updated_at":"2026-05-08T10:34:28.937Z","avatar_url":"https://github.com/nidea1.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable first-line-h1 --\u003e\n\u003c!-- markdownlint-disable html --\u003e\n\u003c!-- markdownlint-disable no-duplicate-header --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/nidea1/go-gavel/blob/main/figures/logo-by-dall-e.png?raw=true\" width=\"40%\" alt=\"goGavel\" /\u003e\n\u003c/div\u003e\n\n## 1. Introduction\n\ngoGavel is a gRPC-based online auction platform built with Go, structured as a microservices monorepo. This project is developed as a learning exercise to explore microservices architecture, gRPC communication, and scalable system design with Go.\n\nThe goal of goGavel is to provide a real-time auction system where users can place bids, manage their auctions, and experience a high-performance distributed system. This project focuses on best practices in Go, efficient inter-service communication with gRPC, and clean architecture principles.\n\n## 2. Key Features\n\n- 🚀 **gRPC** - High-performance RPC framework\n- 📦 **Protobuf** - Efficient data serialization\n- 🐳 **Docker** - Containerized development and deployment\n- 🐘 **PostgreSQL** - Robust data persistence\n- 🔧 **Makefile** - Simplified build automation\n- ⚙️ **Environment Variables** - Flexible configuration\n- 🎯 **Clean Architecture** - Maintainable and testable code\n\n## 3. Core Services\n\n- **Auth** - User authentication and authorization\n- **Auction** - Auction management\n- **Bid** - Real-time bidding\n- **Payment** - Payment processing\n\n\u003cbr /\u003e\n... and more to come!\n\n## 4. Directory Structure\n\n```plaintext\ngo-gavel-microservices/\n├── proto/                              # Protobuf files\n│   ├── auth/\n│   ├── common/                         # Shared messages and enums\n│   ├── ...\n│   └── go.mod\n├── services/                           # Service implementations\n│   ├── auth/\n│   │   ├── go.mod\n│   │   ├── api/                        # gRPC API handlers\n│   │   ├── cmd/\n│   │   │   └── main.go                 # Service entry point\n│   │   ├── docs/                       # API documentation\n│   │   └── internal/\n│   │       ├── domain/                 # Domain models\n│   │       ├── usecase/                # Business logic\n│   │       │   ├── command/\n│   │       │   └── query/\n│   │       ├── repository/             # Data access layer\n│   │       └── events/                 # Event handlers\n│   │           ├── publisher.go\n│   │           └── consumer.go\n│   └── ...\n├── pkg/                                # Shared packages\n│   ├── utils/                          # Utility functions, validators, and helpers\n│   │   └── ...\n│   ├── errors/                         # Custom error types\n│   │   └── ...\n│   ├── grpc/                           # gRPC helpers, interceptors, and middleware\n│   │   └── ...\n│   ├── database/                       # Database connection and query builder\n│   │   └── ...\n│   ├── kafka/                          # Kafka producer and consumer\n│   │   └── ...\n│   ├── ...\n│   └── go.mod\n├── build/                              # Dockerfiles for building the services \n│   ├── base/                           # Base builder image for all services includes Go + Protobuf + gRPC\n│   ├── auth/                           # Auth service builder image\n│   └── ...\n├── .envs/                              # Environment variables\n│   ├── .local/                         # Local development environment variables\n│   └── ...\n├── scripts/                            # Helper scripts\n│   ├── generate_protos.sh\n│   └── ...\n├── Makefile\n├── .gitignore\n├── .dockerignore\n├── docker-compose.local.yml\n├── figures/                            # Diagrams and images for documentation\n│   └── ...\n├── LICENSE\n└── README.md\n```\n\n## 5. Project Status\n\n### 1. Service Implementation\n\n- [ ] **Auth Service**\n  - User authentication and authorization with JWT\n  - Role-based access control\n  - User profile management\n- [ ] **Auction Service**\n  - Auction creation and management\n  - Real-time auction status updates\n  - Automatic auction completion\n- [ ] **Bid Service**\n  - Real-time bid processing\n  - Bid validation and verification\n  - Historical bid tracking\n- [ ] **Payment Service**\n  - Secure payment processing\n  - Multiple payment method support\n  - Transaction history\n\n### 2. Technical Roadmap\n\n- [ ] **Security**\n  - JWT authentication\n  - Role-based access control (RBAC)\n  - API rate limiting\n- [ ] **Quality Assurance**\n  - Unit tests\n  - Integration tests\n  - Load testing\n- [ ] **Documentation**\n  - Development guidelines\n\n## 6. Getting Started\n\nDocumentation coming soon...\n\n## 7. License\n\nThis code repository is licensed under the MIT License. See [LICENSE](https://github.com/nidea1/go-gavel/blob/main/LICENSE) for more information.\n\n## 8. Contact\n\nIf you have any questions or suggestions, feel free to reach out to me at [crlidoruk@gmail.com](mailto:crlidoruk@gmail.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnidea1%2Fgo-gavel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnidea1%2Fgo-gavel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnidea1%2Fgo-gavel/lists"}