Architecture: The Hard Parts - semantic vs implementation coupling
if the semantics of your problem change then everything else needs to change prevent implementation coupling, that makes your architecture brittle contracts: strict vs loose method calls “schema” serialized objects RPC remote procedure call graphql (aggregation framework, not a invocation framework) value-driven contracts json KVP key value pairs example: brittleness not brittle: changing the type of country, does not break the contract for wishlist support all versions forever?...