Versions Compared

Key

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

...

Solution

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

...

anti-patterns

Warning

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.

Warning

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.