Build an online auction platform with real-time bidding.
Study optimistic locking for handling concurrent bids safely.
Deploy the included Kubernetes manifests with autoscaling for production traffic.
| vgartg/go-auction | gizmodata/adbc-driver-quack | gokele/ovh | |
|---|---|---|---|
| Stars | 14 | 14 | 14 |
| Language | Go | Go | Go |
| Setup difficulty | — | moderate | moderate |
| Complexity | 4/5 | 3/5 | 3/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
GoAuction is a real-time auction engine written in Go. It handles the core challenge of online bidding: multiple people trying to place bids at the same moment without creating inconsistent results. It solves this using optimistic locking inside database transactions, meaning the system retries conflicting bids automatically rather than silently dropping them. The engine includes an anti-sniping feature that automatically extends the auction's closing time when a bid comes in near the deadline, preventing last-second bid sniping. Real-time updates, such as new bids, time extensions, and auction closures, are pushed to all connected browsers over WebSocket, so every participant sees changes instantly without refreshing the page. A notable design choice is that the entire application ships as a single binary serving both a JSON REST API and a server-rendered HTML web interface. The web UI is built with templ (a Go templating tool), HTMX (for dynamic page updates without a JavaScript framework), and Tailwind for styling. User authentication uses JWT tokens, and per-IP rate limiting protects both the auth and bidding endpoints. The project stores data in PostgreSQL and uses golang-migrate to manage database schema changes. It also ships with Prometheus metrics for monitoring bid activity, Docker configuration for local development, and Kubernetes manifests for deployment, including an autoscaler that scales the application from two to six replicas based on CPU load. You would use this project as a foundation for building an auction platform, or as a reference for implementing concurrent, real-time bidding logic in Go.
GoAuction is a Go real-time auction engine with anti-sniping, WebSocket live updates, and a single binary serving both API and web UI.
Mainly Go. The stack also includes Go, PostgreSQL, HTMX.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.