Chapter 8. Edge Services
Microservices don’t exist in a vacuum. They ultimately serve clients. These clients are myriad: HTML5 clients, Android clients, iOS clients, PlayStations or XBoxes, Smart TVs, and indeed almost anything else these days has a MAC address (and, thanks to the magic of ARP, an IP address) and could act as a client to your service. Anything. The roads in Singapore capture sensor data to feed into a cloud-based brain that helps with traffic shaping. There are human beings walking around the planet with network-connected organs!
Clients have many different dimensions of capabilities that inform the types of payloads and services they can work with, or talk to:
-
Some have limited memory capacity or processing power which affects how much content a client can manage.
-
Some require specific content types or encodings.
-
Some require different document models optimized for different clients—some hierarchical and some flat.
-
Some clients’ screen real estate may require data to be loaded incrementally instead of all at once.
-
Document delivery may be more efficient streaming or chunked for certain clients.
-
User interactions may change the responses required.
-
They could influence the metadata fields, delivery method, interaction model, etc.
The cost of retrofitting every microservice in a system with a nontrivial number of microservices to accommodate each new client is prohibitive and would introduce a complexity into the system that would quickly become ...