A minimal, performant Go service that ingests external data, transforms it, and persists it to an internal datastore. Designed for clarity, testability, and ease of extension — with zero unnecessary dependencies.
- ✅ Clean, idiomatic Go architecture (no frameworks)
- ✅ Minimal dependencies — stdlib where possible
- ✅ Type-safe DB access via
sqlc
- ✅ Modular structure: config, transport, business logic, persistence
- ✅ Easy to run, test, and deploy
Future roadmap includes:
- Observability (tracing)
- Input validation and rate limiting
- Contract tests and schema versioning
- Graceful shutdown and retries
Layer | Description |
---|---|
cmd/ |
Entry point + service bootstrap logic |
internal/ |
Domain logic, HTTP handlers, middleware, DB |
config/ |
Environment-based config loading & validation |
db/ |
SQL queries generated via sqlc |
scripts/ |
Setup, seed, migration scripts (optional) |
observability/metrics/ |
Prometheus metrics handler |
git clone https://github.com/chatzijohn/amr-data-bridge.git
cd amr-data-bridge
cp .env.example .env
go build -o amr-bridge ./cmd/server
./amr-bridge
Or run directly:
go run ./cmd/server
-
Go 1.25.1+
-
sqlc for SQL generation
-
PostgreSQL or compatible datastore