Skip to main content
The engine’s pellet system (zstd-compressed package bundles) was disabled after extracting pellets-service as a microservice — all 6 handlers returned 503. Rather than deploying and maintaining a separate pellets-service, we implemented compression locally using klauspost/compress/zstd (already in go.mod) with file-based storage and JSON metadata sidecars. The local implementation is ~200 lines, has zero network dependencies, and handles compress/extract/list/stats/prune. The microservice version required gRPC, service discovery, health checks, and a separate deployment — all overhead for what is fundamentally a local filesystem operation. Key learning: Not every extraction improves the system. Compression is I/O-bound and stateless — it belongs in-process, not across a network boundary. Reserve microservice extraction for capabilities that genuinely need independent scaling, different languages, or team ownership boundaries.