Splitting a system into microservices gains you something and costs you something. What you gain is independent deployment and scaling; what you lose is "the whole picture." In the monolith era, when a request was slow you could see which function was the bottleneck from a single stack trace. But once one request passes through API Gateway → Lambda → DynamoDB → an external payment API → SNS → yet another Lambda, each service's logs only know the fragment they saw. The Lambda log says "I took 200ms," the DynamoDB metric says "I was 5ms," yet the user waited 3 seconds. Where the remaining 2.8 seconds leaked, no single service knows