ERDOS is a platform for developing self-driving cars and robotics
ERDOS is a streaming dataflow system designed for self-driving car
pipelines and robotics applications.
Components of the pipelines are implemented as operators which
are connected by data streams. The set of operators and streams
forms the dataflow graph, the representation of the pipline that
Applications define the dataflow graph by connecting operators to streams in the driver section of the program. Operators are typically implemented elsewhere.
ERDOS is designed for low latency. Self-driving car pipelines require
end-to-end deadlines on the order of hundreds of milliseconds for safe
driving. Similarly, self-driving cars typically process gigabytes per
second of data on small clusters. Therefore,
ERDOS is optimized to
send small amounts of data (gigabytes as opposed to terabytes)
as quickly as possible.
ERDOS provides determinisim through watermarks. Low watermarks
are a bound on the age of messages received and operators will ignore
any messages older than the most recent watermark received. By processing
on watermarks, applications can avoid non-determinism from processing
messages out of order.
Adds a watermark callback across several read streams.
Connects read streams to an operator that writes on 0 streams.
Connects read streams to an operator that writes on 1 stream.
Connects read streams to an operator that writes on 2 streams.
Connects read streams to an operator that writes on 3 streams.
Imports crates needed to run register!
Makes a callback builder that can register watermark callbacks across multiple streams.
Makes a closure that runs an operator inside of an operator exectuor when invoked.
Registers and operator and streams produced by that operator to the dataflow graph and the stream manager.
Wrapper around uuid::Uuid that implements Abomonation for fast serialization.
Produces a deterministic, unique ID.