Properties:
- Highly efficient schema-driven RPC calls
- Session-Aware Metrics
- Standard reporting for services about their interfaces
- Registration with membership/load balancing servers which spread requests and merge responses
- One such load balancer is the router service, which registers a regular-like expression (trie routing)
- Another such load balancer is data/query routing service -- think top level of a GraphQL API. It needs to communicate with other services to generate the data.
- Should work isomorphically, client-side bundled multiple routes, server forwards routes
- Should support in-process communication as well, which also live/hot updates (at least in supported languages). This can be accomplished by not saving stateful objects, but instead communicating to services over interfaces.
- CQRS - style, event driven for maximal horizontal scalability