Moving to Microservices: Optimizing Network Calls
summary
Discusses the network costs and new failure modes that appear when a PHP monolith coexists with many microservices, and practical optimizations to reduce network overhead. Covers how PHP’s curl and curl_multi_exec work, use of the Guzzle wrapper and Avito’s usage, choosing correct timeouts and their failure effects (worker-pool exhaustion, cascading failures), and using a reverse proxy with PHP for keep-alive, DNS-resolve savings, and retries.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:43Why network optimization matters
- 4:57Sequential requests problem
- 7:04Parallel requests with Go and batch
- 10:18Curly and optimizations
- 12:45Reverse proxy setup
- 15:15Graceful degradation approach
- 18:27Retry strategies and risks
- 22:44Retry implementation mistakes
- 25:34Microservices load impact
- 27:43File strategy for microservices
- 28:47Summary
related talks
48mMicroservices vs The Distributed Monolith
34mMigrating a High‑Load Project to Microservices
43mGo micro with Microservices
36mRemoving the legacy, the microservice approach
46mFrom a PHP Monolith to Scala Microservices
37mHow to run 200+ PHP services in production and not lose your mind
19mMicroservices vs. Monolith for Scalability and Efficiency
49mFrom Microservices to Migroservices
