Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.



Abstraction & agility

Bandwidth usageBookmarkingMaturity
Solution 1(plus)(plus)(minus)(thumbs up)(big grin)
Solution 2(plus)(minus)(plus)(thumbs up)(big grin)
Solution 3(minus)(plus)(plus)(thumbs up)(big grin)

A couple




I've seen some articles or comments alluding to a solution in which the façade caches URIs for later use. However, this runs the risk of treating every backend back-end URI as an entry point and would expose the client to the volatility of certain state transitions.


I've also come across a similar solution where the façade embeds back-end URIs as query parameters of its own URIs. This is an antipattern anti-pattern for a few reasons:

  • the resulting façade URIs do not comply with the resource constraint, level 2 of the Richardson Maturity Model;
  • these URIs break encapsulation, which circumvents the very purpose of a façade;
  • this scheme risks circumventing entry points.


Finally, the examples given only integrate with one back-end service, but they the solutions apply to façades that integrate multiple services. In fact, one could quite possibly chose different solutions for communicating with each of them.