ASAbhishek Sharmainabhishekshr.hashnode.dev·May 5 · 7 min readI Needed to Send an HTTP Request Without Slowing Down My API. Goroutines Fixed That.In Part 12, I added resilience patterns — retry, timeout, circuit breaker. My backend could now survive Redis going down. But there was still a problem. When someone created an entry, I needed to notify an external service. A webhook: fire an HTTP PO...00
ASAbhishek Sharmainabhishekshr.hashnode.dev·Apr 29 · 8 min readMy Backend Crashed Every Time Redis Went Down. Three Patterns Fixed That.In Part 11, I built a metrics system to see the big picture — request counts, latencies, error rates per endpoint. Then I looked at my main.go and realized something embarrassing. The JWT secret was hardcoded. The Redis address was a string literal. ...00
ASAbhishek Sharmainabhishekshr.hashnode.dev·Apr 28 · 6 min readI Had No Idea Which Endpoint Was Slowest. So I Built My Own Metrics.In Part 10, I added structured logging and request IDs. I could now trace a single request through my entire backend — every log line tagged, searchable, debuggable in seconds. But I still couldn't answer basic questions: How many requests did /entr...00
ASAbhishek Sharmainabhishekshr.hashnode.dev·Apr 26 · 6 min readEvery Request Looked the Same in My Logs. Then I Added One Line.In Part 9, I Dockerized my backend and added database migrations. One command (docker compose up) now spins up Go + Postgres + Redis. Then I hit a bug. I sent a POST to /entries and got a 500 back. No idea why. I opened the logs: 2026/02/01 10:15:23 ...00
ASAbhishek Sharmainabhishekshr.hashnode.dev·Apr 25 · 7 min readMy Database Disappeared Every Time I Restarted Docker. Migrations Fixed That.In Part 8, I ripped out SQLite and switched to Postgres. The database was real now — but it still only ran on my laptop. Three terminal tabs. One for go run, one for Redis, one for Postgres. If I closed any of them, the whole thing fell over. It was ...00