Inter-Service Communication in Microservices: When to Use a Service Mesh and When to Use a Message Broker