Go
Go is Putnami's backend service surface: small packages, explicit wiring, fast builds, and operational primitives that match the same workspace model as TypeScript.
Use it for APIs, workers, platform-adjacent services, and infrastructure-facing components where predictable runtime behavior matters more than framework magic.
Choose your path
| Goal | Start here | Then read |
|---|---|---|
| Create your first Go project | Getting Started | How To / Guides, Extension phases, Overview |
| Create a service | HTTP & Middleware | Plugins & Lifecycle, Platform endpoints |
| Structure the application | Plugins & Lifecycle | Dependency Injection, Configuration |
| Protect boundaries | Security | Validation, Errors |
| Add data and messaging | Persistence | Events, Storage, Caching |
| Expose service contracts | OpenAPI | gRPC & Connect, Service Clients |
| Operate in production | Platform endpoints | Logging, Telemetry, Testing |
The service model
Putnami Go services are built around the same architectural shape as the rest of the workspace:
- Application lifecycle starts and stops plugins predictably.
- Plugins own capabilities such as HTTP, health, events, storage, or telemetry.
- Dependency injection and config keep wiring explicit instead of hidden in package globals.
- Platform endpoints and telemetry make the service inspectable from the first deploy.
That gives Go projects a clear path from a small HTTP service to a production backend without changing the repo model.
Capability map
| Concern | Go docs | What to expect |
|---|---|---|
| HTTP | HTTP & Middleware | Routing, middleware chains, handlers, responses |
| Runtime wiring | Dependency Injection, Configuration | Typed construction, scopes, environment-driven config |
| Data | Persistence, Storage, Caching | PostgreSQL, object storage, local and layered caches |
| Communication | Events, gRPC & Connect, Service Clients | Async workflows, RPC, outbound clients |
| Operability | Logging, Telemetry, Platform endpoints | Structured logs, traces, health and readiness endpoints |
If you are coming from TypeScript
The concepts are intentionally familiar, but the implementation is Go-native.
| TypeScript concern | Go equivalent |
|---|---|
application().use(...) |
Application lifecycle plus plugins |
| API routes and middleware | HTTP & Middleware |
| DI providers | Dependency Injection |
| Typed config | Configuration |
| Health and telemetry | Platform endpoints, Telemetry |
Next: start with Getting Started, use How To / Guides for concrete tasks, then read Extension phases when you need to understand build, test, lint, serve, packaging, or cache behavior.