Skip to content

AlanP13/Enterprise-Event-Simulation-Platform

Repository files navigation

Enterprise Event Simulation Platform

A configuration-driven event simulation platform for exercising distributed systems under realistic conditions—burst traffic, out-of-order delivery, retries, partial failures, and replay.

This repository packages a simulator + scenario library so engineers can validate system behavior and data correctness before production releases.

Why this exists

Distributed systems fail in predictable ways:

  • Events arrive late or out of order
  • Downstream services throttle or time out
  • Retries create duplicate work
  • “Small” configuration changes cause big behavioral shifts

This platform provides a repeatable testbed to reproduce those conditions deterministically using configuration files and scenario definitions.

What’s inside

  • platform/iot-simulator/: The Java-based simulator runtime (Gradle project)
  • configs/: Baseline configurations + environment profiles
  • examples/: Scenario library (financial-like events, device fleets, failure testing)
  • docs/: Architecture, design decisions, components, and real-world mappings
  • ci/: CI tooling and quality gates
  • legacy-coursework/: Archived academic artifacts (renamed and organized)

Key capabilities

  • Configuration-driven simulation (no code changes required for most scenarios)
  • Event generation (burst/steady), routing, transformation, and sink behaviors
  • Deterministic replay for debugging and regression validation
  • Failure modeling (timeouts, drop rates, backpressure, retries, partial outages)
  • Scenario packaging so teams can share and reproduce test conditions

Quick start

Prereqs: Java (matching your Gradle toolchain), Gradle wrapper included.

cd platform/iot-simulator
./gradlew clean test
./gradlew run

Run a scenario

Scenarios are stored in examples/ and reference configs in configs/.

Example:

cd platform/iot-simulator ./gradlew run --args="--scenario ../../examples/scenario-failure-testing/scenario.json --config ../../configs/simConfig.json"

Adjust the CLI args to match your simulator’s current entrypoint; see docs/simulation-scenarios.md.

About

Configuration-driven platform for simulating distributed system events, failures, retries, and replay scenarios.

Resources

Stars

Watchers

Forks

Contributors