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:
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
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
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.
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": [...]} |
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.