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§
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.
- Component
Builder - Builder for
Component
. - Endpoint
- Instance
- Namespace
- Namespace
Builder - Builder for
Namespace
. - Registry
- Registry
Inner
Enums§
- Component
Builder Error - Error type for ComponentBuilder
- Instance
Source - Namespace
Builder Error - Error type for NamespaceBuilder
- Transport
Type
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.