DEVELOPER NEWS STREAM
Direct logs, engine updates, and framework notifications parsed from curated RSS feeds and announcements, updated hourly.

Gabriel AnhaiaThe Coupling Problem Hiding in Every Go Microservice Codebase
Shared databases, direct imports, leaked domain types. Three coupling patterns that turn your Go microservices into a distributed monolith.

Gabriel AnhaiaDomain Events in Go Without an Event Bus
You don't need Kafka or NATS to use domain events. A channel, a port, and a test double give you event-driven behavior today.

Gabriel AnhaiaMigrating a Large Go Service to Hexagonal Without a Rewrite
Four PRs. No feature freeze. Each step compiles, passes tests, and ships to prod before you start the next one.

Gabriel AnhaiaStop Importing database/sql in Your Go Business Logic
Your domain package's import block tells you whether your architecture is real or cosplay. Here's how to audit it and fix it.

Gabriel AnhaiaYour Go Config Package Is a Hidden Dependency Monster
That global config.Get().DatabaseURL call in your domain? It couples every package to one struct. Here's how to kill it.

Gabriel AnhaiaYour Go Tests Take 6 Minutes Because Your Architecture Is Wrong
When every test needs a running Postgres, the problem is not your test suite. It is your domain coupled to infrastructure.

Gabriel AnhaiaGo's Implicit Interfaces Are Its Best Architecture Feature
Implicit interface satisfaction is the reason hexagonal architecture feels native in Go. No DI container, no framework, no ceremony.

Gabriel AnhaiaYour Go Middleware Is Doing Too Much. Move It to an Adapter
Middleware that mixes auth, validation, and business rules turns your HTTP layer into a monolith. Here is how to split it clean.

Gabriel AnhaiaValue Objects in Go: 4 Patterns That Kill Invalid State
Go has no classes, but value objects are the most underused DDD weapon in Go codebases. Four patterns that make invalid state unrepresentable.

Gabriel AnhaiaThe Anti-Corruption Layer That Saves Your Next Vendor Migration
Your domain calls Stripe directly. Then you switch to Adyen. Every file changes. An ACL adapter in Go makes the migration one new file.

Gabriel AnhaiaI Replaced 2,000 Lines of Go Mocks With 200 Lines of Fakes
Generated mocks are verbose, brittle, and test implementation details. Fake adapters are simpler, faster, and catch real bugs.

Gabriel Anhaiamain() Is the Most Important Function in Your Go Service
In hexagonal Go, main() is your composition root. No DI container, no init() magic. Every dependency visible in one place.

Gabriel AnhaiaYour gRPC Protobuf Types Don't Belong in Your Domain Layer
Generated proto structs are transport types. When they leak into your service logic, you get nil panics, brittle coupling, and proto-specific types everywhere.

Gabriel Anhaiagolang-standards/project-layout Is Not a Standard. Russ Cox Said So
55k stars, zero blessing from the Go team. Russ Cox publicly rejected it. Here is what the real layout looks like, with the GitHub issues to back it up.

Andrey KolkovGoGPU - 790K Lines of Pure Go: Multi-Window GPU Apps, DXIL Compiler, and Why We Don't Need CGO
GoGPU ecosystem reaches 790K LOC. Multi-window architecture, first Pure Go DXIL generator, 22-widget GUI toolkit, and a Quake engine — all without a single line of C.

Gabriel AnhaiaThe Repository Pattern Everyone Gets Wrong in Go
You put the interface next to the implementation. Java does that. Go does not. Here is the before/after that fixes it.