Reliable communication allows for simpler interfaces

The less reliable and performant communication is, the more elaborate producer interface should be to provide exactly what the consumer requires without multiple roundtrips.

The more reliable and performant communication is, the simpler and more conservative producer interface should be to improve its maintainability and reduce its coupling to the consumer.

Examples

When entities are talking among each other in a single process, they can communicate reliably, therefore their interfaces should be kept simple and minimal.

When entities are talking via the network to databases, APIs, or microservices, they cannot communicate reliably, therefore they should have ways to request exactly what they need in one roundtrip.

Caveat

Just because reliable communication allows for minimal interfaces, doesn’t mean that these interfaces should be leaky. Make sure that they are as simple as possible at the proper level of abstraction.



Date
November 10, 2022