Skip to main content

Architecture

Components composition

Automorph provides the following building blocks to assemble either standalone RPC clients and servers or integrate with existing systems by freely combining its various plugins:

RPC client & server

RPC client & server

RPC client & endpoint

RPC client & endpoint

Entry points

RPC client

Used to perform type-safe remote API calls or send one-way messages.

Remote APIs can be invoked statically using transparent proxy instances automatically derived from specified API traits or dynamically by supplying the required type information on invocation.

Depends on

Used by

  • Applications

RPC server

Used to serve remote API requests using specific transport protocol and invoke bound API methods to process them.

Automatically derives remote API bindings for existing API instances.

Depends on

Used by

  • Applications

RPC endpoint

Integrates with an existing server to receive remote API requests using specific transport protocol and invoke bound API methods to process them.

Automatically derives remote API bindings for existing API instances.

Depends on

Used by

  • Applications

Plugins

RPC protocol

Remote procedure call protocol plugin.

The underlying RPC protocol must support remote function invocation.

Depends on

Used by

Effect system

Computational effect system plugin.

The underlying runtime must support monadic composition of effectful values.

Used by

Message codec

Structured message format codec plugin.

The underlying data format must support storing arbitrarily nested structures of basic data types.

Used by

The underlying transport protocol must support request/response messaging pattern.

Client transport

Client transport protocol plugin.

Passively sends requests and receives responses to and from a remote endpoint using specific transport protocol.

Depends on

Used by

Server transport

Server transport protocol plugin.

Actively receives requests to be processed by the RPC handler and sends responses using specific transport protocol.

Depends on

Used by

  • Applications

Endpoint transport

Existing transport protocol server integration plugin.

Passively parses requests to be processed by the RPC handler and creates responses for specific server.

Depends on

Used by

  • Applications