Migrating a Mission Critical Service to Go
summary
AppsFlyer rewrites its Clojure API gateway in Go, using Go’s stdlib reverse proxy to stream requests and raise per-instance concurrency from 60 to 6,000 concurrent requests, reducing instances from ~30 to ~5. Authorization moves from brittle DB-registered URL lists to convention-based query params and a lightweight JWT/session coexistence for seamless auth. The gateway sends only user IDs; microservices fetch account data via a provided client. Migration runs dual flows behind an AWS ALB for controlled, zero-downtime rollout migrating ~80 services and yielding 39 Go services a year later.
AI-written summary · about
chapters (8)
- 0:00Introduction and context
- 3:40The legacy API gateway
- 7:49Identifying problems and goals
- 12:38Choosing technology and design
- 16:01Engineering the new service
- 21:34Company-wide migration
- 28:34Results and summary
- 30:44Q&A session
related talks
31mSuccessful Go for microservices architecture
23mDerisking Migrations of API Backends
36mA colorful journey of be from NodeJS to Go
51mMicroservices in Go
26mAPI Gateway, A Success Story
24mA Journey from Big Python Monolith to Go Services
31mHow Go is Making us Faster
23mLessons from Building an API Management Platform
