Nanoservices

Nanoservice is an Anti-pattern where a service is too fine grained. Nanoservice is a service whose overhead (communications, maintenance etc.) outweighs its utility.

Effects:

  • poor performance:
    serialization on caller, translation to the underlying network protocol, traveling on the network, deserialization on the called process, encryption, authorization, routing, retries, firewalls
  • fragmented logic: break what should have been a meaningful cohesive service into minuscule steps
  • overhead Fallacies of distributed computing: bandwith is infinite and transport cost is zero.

Examples:

  • calculator service
  • send notifications to users via SMS througjh a svc, better encapsulate as a package
  • 3-Tier SOA anti-pattern: trying to dress up 3-tier architectures of yore in SOA clothing

« | home | wiki