Are you designing Microservices? So, I would like to share a fascinating slide deck that I discovered recently. That comes from a Patt Helland’s talk at TechEd 2002 (!!).
Defining Fiefdoms
Using the author’s definition, we could define a Fiefdom as:
- Computing function and applications which behaves as an independent entity
- Has private data
- No one outside can read or write the information
- Only well-defined requests are serviced from the outside
- An autonomous unit — managed independently (Usually one (or a few) machines)
- Don’t trust outsiders
- Incoming requests will be inspected
- Fields will be validated
- Identity will be authenticated
It looks like Microservices. Am I right?
Defining Emissaries
Using the author’s definition, we could define an Emissary as:
- It knows how to fill out a request for the fiefdom
- It understands the rules of the fiefdom and how to (probably) get the request accepted
- They have two purposes
- Displaying information to users
- Preparing requests to send to fiefdoms
- They are not trusted by the fiefdom
- They will frequently come with reference data
- They gather information needed to prepare requests (For example, a shopping basket accumulates the items to purchase)
It looks like the Client APIs!