mirror of
https://github.com/logos-blockchain/logos-blockchain-testing.git
synced 2026-04-11 13:43:08 +00:00
48 lines
1.4 KiB
Markdown
48 lines
1.4 KiB
Markdown
# Queue Example
|
|
|
|
This example runs a small replicated FIFO queue.
|
|
|
|
The scenarios enqueue messages, dequeue them again, and check that queue state
|
|
either converges or drains as expected.
|
|
|
|
## How TF runs this
|
|
|
|
Each example follows the same pattern:
|
|
|
|
- TF starts a small deployment of queue nodes
|
|
- a workload produces messages, or produces and consumes them
|
|
- an expectation checks either that queue state converges or that the queue drains
|
|
|
|
## Scenarios
|
|
|
|
- `basic_convergence` produces messages and checks that queue state converges locally
|
|
- `basic_roundtrip` produces and consumes messages locally until the queue drains
|
|
- `basic_restart_chaos` injects random local node restarts during the run
|
|
- `compose_convergence` and `compose_roundtrip` run the same checks in Docker Compose
|
|
|
|
## API
|
|
|
|
Each node exposes:
|
|
|
|
- `POST /queue/enqueue` to add a message
|
|
- `POST /queue/dequeue` to remove a message
|
|
- `GET /queue/state` to inspect the current queue state
|
|
- `GET /internal/snapshot` to read the local replicated state
|
|
|
|
## Run locally
|
|
|
|
```bash
|
|
cargo run -p queue-examples --bin basic_convergence
|
|
cargo run -p queue-examples --bin basic_roundtrip
|
|
cargo run -p queue-examples --bin basic_restart_chaos
|
|
```
|
|
|
|
## Run with Docker Compose
|
|
|
|
```bash
|
|
cargo run -p queue-examples --bin compose_convergence
|
|
cargo run -p queue-examples --bin compose_roundtrip
|
|
```
|
|
|
|
Set `QUEUE_IMAGE` to override the default compose image tag.
|