An RPC client/server implementation using Typhon, intended for building microservices.
A Server
receives RPC requests, routes them to an Endpoint
, calls a handler function to "do work," and returns a response back to a caller.
Server middleware offers hooks into request processing for globally altering a server's input or output. They could be used to provide authentication or distributed tracing functionality, for example.
A Client
offers a convenient way, atop a Typhon transport, to make requests to other servers. They co-ordinate the execution of many parallel requests, deal with response and error unmarshaling, and provide convenient ways of dealing with response errors.
Like server middleware, clients too have hooks for altering outbound requests or inbound responses.
A Service
is a lightweight wrapper around a server, which also sets up some global defaults (for instance, to use the same default client transport as the server).