distributed 1.4.0

CQRS/ES framework for Rust using Plain Old Rust Structs — append-only events, replay, snapshots, outbox, service bus, and pluggable infrastructure
Documentation
name: NATS JetStream Integration Tests

# Reusable workflow: referenced via `uses: ./.github/workflows/integration-nats.yaml`
# from both the PR-quality and push-to-main pipelines.
on:
  workflow_call:

jobs:
  nats:
    name: NATS JetStream Integration Tests
    runs-on: ubuntu-latest
    env:
      CARGO_TERM_COLOR: always
      NATS_URL: nats://localhost:4222
    steps:
      - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
        with:
          persist-credentials: false
      - uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8
        with:
          toolchain: stable
      # NATS service containers can't override the entrypoint to enable
      # JetStream, so start it as a step instead.
      - name: Start NATS (JetStream)
        run: |
          docker run -d --name nats -p 4222:4222 nats:2.10-alpine -js
          for i in $(seq 1 30); do
            if nc -z localhost 4222; then echo "nats up"; break; fi
            sleep 1
          done
      - name: Run NATS transport integration tests
        run: cargo test --test nats_transport --features nats --verbose