Humble Architecture

In many respects, the principles of Service-Oriented Architecture (SOA) can be summarized as “be humble”. “Service” comes from “servus”, Latin for “slave”. It doesn’t get any more humble.

More practically, this means that the key things to keep in mind when creating a service, is that you are not at the center of the universe, that you don’t know who is going to consume your service, that you don’t know what they are going to do with it, that you are not necessarily the one who can make the best use of the information you have access to and that you should be willing to share it with others openly (instead of the all-too familiar syndrome where everyone wants to consume other people’s services but no-one sees the need to expose themselves as services because they think they “own” the connection to the human or they “own” the business process). You also shouldn’t assume that some human needs to come to you and ask for permission to use your service but instead you should provide machine-readable descriptions of it as well as quality documentation. And don’t assume that everyone speaks the same language you speak. In case of doubt in designing a service-oriented system, ask yourself “what would a slave do?”.

Focused, standard-based services are humble. Portlets are humble. RSS feeds are humble. Giant software suites and all-encompassing frameworks are not humble.

Successful open source projects are humble almost by definition. Large software companies rarely have humility genes in their DNA, unless it’s been beaten into them by customers.


Filed under Everything, Tech