QUICKSTART & CI/CD REFERENCE

Developer Setup & Automation

Aegis Market Simulators are distributed as a single standalone executable fat JAR with zero external dependencies, or as an OCI-compliant container image. Boots in 380ms with 100% in-memory isolation.

Run Anywhere in Seconds

No PostgreSQL, no Redis, no RabbitMQ, and no complex configuration files. Choose your preferred runtime environment:

Method 1 Native Standalone Java JAR (Recommended for Dev & Fast CI)

Requires JDK 25 or higher. All internal queues, HTTP engines, and memory books are packaged inside:

# Launch with default localhost bindings (127.0.0.1:8690 - 8695, 8699)
java -jar aegis-market-simulators-1.0.0.jar

# Or pass specific network interface and memory flags:
java -Xmx512m -jar aegis-market-simulators-1.0.0.jar --bind 0.0.0.0
Method 2 Standard Docker Container

Publish the simulated peer ports to your host or internal test network:

docker run -d --name aegis-simulators \
  -p 8690:8690 \
  -p 8691:8691 \
  -p 8692:8692 \
  -p 8693:8693 \
  -p 8694:8694 \
  -p 8695:8695 \
  -p 8699:8699 \
  aegissystems/market-simulators:1.0.0
Method 3 Docker Compose Configuration
version: '3.8'

services:
  market-simulators:
    image: aegissystems/market-simulators:1.0.0
    container_name: aegis_simulators
    ports:
      - "8690-8695:8690-8695"
      - "8699:8699"
    environment:
      - AEGIS_MARKET=AUSTRALIA
      - AEGIS_BIND=0.0.0.0
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8699/api/status"]
      interval: 2s
      timeout: 1s
      retries: 5
    restart: unless-stopped

Automate Post-Trade Tests in CI/CD Runners

Because Aegis has zero database dependencies and boots in under 400ms, you can spin up a fresh, isolated market simulator inside every parallel CI test job.

.github/workflows/post-trade-tests.yml
name: Institutional Post-Trade Clearing Tests

on: [push, pull_request]

jobs:
  clearing-regression:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up JDK 25
        uses: actions/setup-java@v4
        with:
          java-version: '25'
          distribution: 'temurin'

      - name: Launch Ephemeral Aegis Market Simulator
        run: |
          java -jar aegis-market-simulators-1.0.0.jar &
          # Poll status endpoint (boots in < 400ms)
          until curl -s http://127.0.0.1:8699/api/status | grep -q "UP"; do
            sleep 0.1
          done
          echo "Aegis Australian Market Simulators online and ready for testing."

      - name: Execute End-to-End CHESS & DCS Test Suite
        run: |
          mvn test -Dtest=ChessBatchSettlementTest,DcsDerivativesAllocationTest

      - name: Tear Down Ephemeral Simulator
        if: always()
        run: |
          pkill -f aegis-market-simulators || true

REST Management & Break Injection API

Manage books, reset seed holding balances, and programmatically simulate market anomalies using the built-in control plane on port 8699.

Method & Path Description Request Payload Response
GET /api/status Returns overall health, peer port map, and uptime None {"status": "UP", "market": "AUSTRALIA"}
POST /api/seed/reset Instantly resets all holding balances and books to initial fixture values None {"status": "RESET_COMPLETE", "durationMs": 4}
POST /api/chaos/inject Injects simulated market failures (schema rejections, latency, drops) {"target": "CHESS", "action": "FAIL_NEXT_SETTLEMENT"} {"injected": true, "ruleId": "CHAOS-901"}
GET /api/holdings/{hin} Inspects real-time security balance under a specific simulated HIN None (URL param) {"hin": "0002198421", "holdings": [...]}
Example: Injecting a Simulated Settlement Fail via curl
curl -X POST http://127.0.0.1:8699/api/chaos/inject \
  -H "Content-Type: application/json" \
  -d '{
    "peer": "CHESS_SETTLEMENT",
    "triggerOnTx": "TX-BHP-88912",
    "failureReason": "INSUFFICIENT_STOCK",
    "asxErrorCode": "COMM-REJ-044"
  }'

# The next comm_801 message containing TX-BHP-88912 will be rejected with an official ASX error envelope!

Ready to Test Your Systems Locally?

Request an evaluation JAR package and integrate it into your local development workflows in minutes.

Request Evaluation Build Explore Australian Suite