When microservices exceed a certain scale, the data contract between client and server becomes a major operational cost. When a mobile app needs to display "order details + user + shipping address + payment method" on one screen, REST requires 4-5 simultaneous API calls that the client must combine. As screens change, backend APIs change too. The answer to breaking this coupling is GraphQL, and AWS's managed service for it is AppSync.
Meanwhile, inter-service messaging long used SQS, SNS, and Kinesis as standards. They seem similar but are fundamentally different