Module component

Module component 

Source
Expand description

The Component module defines the top-level API for building distributed applications.

A distributed application consists of a set of Component that can host one or more Endpoint. Each Endpoint is a network-accessible service that can be accessed by other Component in the distributed application.

A Component is made discoverable by registering it with the distributed runtime under a Namespace.

A Namespace is a logical grouping of Component that are grouped together.

We might extend namespace to include grouping behavior, which would define groups of components that are tightly coupled.

A Component is the core building block of a distributed application. It is a logical unit of work such as a Preprocessor or SmartRouter that has a well-defined role in the distributed application.

A Component can present to the distributed application one or more configuration files which define how that component was constructed/configured and what capabilities it can provide.

Other Component can write to watching locations within a Component etcd path. This allows the Component to take dynamic actions depending on the watch triggers.

TODO: Top-level Overview of Endpoints/Functions

Modules§

service

Structs§

Client
Component
A Component a discoverable entity in the distributed runtime. You can host Endpoint on a Component by first creating a Service then adding one or more Endpoint to the Service.
ComponentBuilder
Builder for Component.
Endpoint
Instance
Namespace
NamespaceBuilder
Builder for Namespace.
Registry
RegistryInner

Enums§

ComponentBuilderError
Error type for ComponentBuilder
InstanceSource
NamespaceBuilderError
Error type for NamespaceBuilder
TransportType

Constants§

ETCD_ROOT_PATH
The root etcd path where each namespace is registered in etcd.
INSTANCE_ROOT_PATH
The root etcd path where each instance registers itself in etcd. An instance is namespace+component+endpoint+lease_id and must be unique.