1/30 Days System Design Question The article presents a system design problem where a mobile app directly communicates with three backend services, with a fourth one approaching, causing integration complexity and tight coupling. It asks readers to choose the best solution among an API Gateway, a Backend for Frontend (BFF), a Load Balancer, or GraphQL Federation, noting that only one correctly reduces coupling for the mobile client. The correct answer is the BFF, as it provides a dedicated aggregation layer that handles routing, authentication, and data shaping specifically for the mobile app, offloading these responsibilities from the client. our mobile app talks to 3 backend services directly. A 4th one ships next sprint. The mobile team is already drowning. Every new service means a new domain to whitelist, a new auth scheme to wire, and a new error shape to parse. You’re asked to reduce coupling before NotificationService lands. Here’s the setup: Mobile → UserService users.api.com Mobile → OrderService orders.api.com Mobile → PaymentService payments.api.com …and NotificationService next sprint. The client is doing routing the backend should be doing. What do you do? A Add an API Gateway — single entry point, all services hide behind one domain. B Build a BFF Backend for Frontend — a dedicated aggregation layer tailored for mobile. C Put a Load Balancer in front of all services — single IP, distributed traffic. D Switch to GraphQL Federation — one unified schema the client queries. Three of these are real patterns you’d use in production. Only one of them actually solves the problem in front of you. Pick one — A, B, C, or D — and tell me why. I’ll drop the full breakdown in the comments including why two of the wrong answers are close enough to trick senior engineers . If this is the kind of tradeoff question your team argues about, share it with them. The debate is worth more than the post. Drop your answer 👇