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.
- This note explains one of the principles that is the basis for server informed ui.