#distributed system Service-to-Service Communication: When to Use REST, gRPC, and Event-Driven Messaging