A logistics company is modernizing a legacy data processing system that runs on large Amazon EC2 instances. The legacy application processes incoming shipping data sequentially, though the output order is not important. Because the application is monolithic, the only way to handle higher loads is by upgrading instance sizes, which has become costly and inefficient. The engineering team plans to refactor the application into a set of microservices running on Amazon ECS. To enable reliable communication between services and to support scaling, what is the most suitable communication mechanism?