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 ...

Get Cloud Native Java now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.