- A High level API defined in [component.rs](src/component.rs) to build distributed applications.
- A [Distributed runtime](src/distributed.rs) to manage the distributed execution of the inference graph.
- Uses [NATS](src/transports/nats.rs) for component communication and [etcd](src/transports/etcd.rs) for service discovery, allowing engines to be distributed across multiple nodes while maintaining a unified processing graph.
- Modular design makes it easy to build inference pipelines by composing reusable components.
defined in the project's root [docker-compose.yml](docker-compose.yml).
```
docker-compose up -d
```
This will deploy a [NATS.io](https://nats.io/) server and an [etcd](https://etcd.io/)
server used to communicate between and discover components at runtime.
#### Local (alternate)
To deploy the pre-requisite services locally instead of using `docker-compose`
above, you can manually launch each:
-[NATS.io](https://docs.nats.io/running-a-nats-service/introduction/installation) server with [Jetstream](https://docs.nats.io/nats-concepts/jetstream)
- example: `nats-server -js --trace`
-[etcd](https://etcd.io) server
- follow instructions in [etcd installation](https://etcd.io/docs/v3.5/install/) to start an `etcd-server` locally
### Run Examples
When developing or running examples, any process or user that shared your core-services (`etcd` and `nats.io`) will
be operating within your distributed runtime.
The current examples use a hard-coded `namespace`. We will address the `namespace` collisions in this