Skip to main content

Module location

Module location 

Source
Expand description

Type definitions for distributed locations, which specify where pieces of a Hydro program will be executed.

Hydro is a global, distributed programming model. This means that the data and computation in a Hydro program can be spread across multiple machines, data centers, and even continents. To achieve this, Hydro uses the concept of locations to keep track of where data is located and computation is executed.

Each live collection type (in crate::live_collections) has a type parameter L which will always be a type that implements the Location trait (e.g. Process and Cluster). To create distributed programs, Hydro provides a variety of APIs to allow live collections to be moved between locations via network send/receive.

See the Hydro docs for more information.

Re-exports§

pub use external_process::External;
pub use process::Process;
pub use cluster::Cluster;
pub use member_id::MemberId;
pub use member_id::TaglessMemberId;
pub use tick::Atomic;
pub use tick::NoTick;
pub use tick::Tick;
pub use LocationKey as _;

Modules§

cluster
Definitions for clusters, which represent a group of identical processes.
dynamic
Definitions for interacting with locations using an untyped interface.
external_process
Types for representing external processes that communicate with a Hydro dataflow.
member_id
Typed and untyped identifiers for members of a Cluster.
process
Definition of the Process location type, representing a single-node compute location in a distributed Hydro program.
tick
Clock domains for batching streaming data into discrete time steps.

Structs§

LocationKey
A unique identifier for a clock tick.

Enums§

LocationType
A simple enum for the type of a root location.
MembershipEvent
An event indicating a change in membership status of a location in a group (e.g. a node in a Cluster or an external client connection).
NetworkHint
A hint for configuring the network transport used by an external connection.

Traits§

Location
A location where data can be materialized and computation can be executed.