Interactive visualizations of actor simulations with virtual time
These reports demonstrate the visualization capabilities of GenServerVirtualTime, a library for testing time-based GenServers and simulating actor systems with virtual time. All simulations run in milliseconds but simulate seconds or minutes of virtual time.
NEW! These reports visualize actor system topology using Mermaid flowcharts with embedded statistics. They show message flow, activity levels, and performance metrics.
Multi-stage data processing pipeline with message forwarding and statistics.
View Report βPublisher broadcasting events to multiple subscribers with message rates.
View Report βLoad balancer distributing work to multiple workers with result collection.
View Report βSimulation that stops when goal is achieved, showing exact termination point.
View Report β7 actors randomly sending :hi messages with fixed seed for reproducible results.
View Report βToken passing ring with 7 actors, complete circular message flow.
View Report β7 VirtualTimeGenServer actors with random delays 200-300ms, real module implementation.
View Report β7 actors in full mesh topology sending random :hi messages with reproducible seed.
View Report βDemonstrates quiescence termination - sender emits 10 messages, receiver batches and replies once.
View Report βThese diagrams show message-by-message interaction between actors over time. Perfect for understanding communication patterns and debugging.
Basic client-server interaction with request and response messages.
View Diagram βMulti-stage authentication flow: API β Auth β Database β Response.
View Diagram βDemonstrates synchronous calls and asynchronous casts with different arrow styles.
View Diagram βShows virtual time progression with timestamp annotations.
View Diagram βClassic concurrency problem demonstrating deadlock-free message passing with various table sizes and termination conditions.
Shows 2 philosophers both eating - watch for "I'm full!" from each!
View Diagram βClassic 5-philosopher problem solved - flowchart showing all philosophers successfully eating at least once.
View Report βDemonstrates dramatic virtual time speedup with 10ms thinking delays - watch the performance metrics!
View Report βVisual actor topology with different shapes for sources, sinks, and processors
Message counts and rates displayed directly on diagram nodes
Color-coded nodes based on message activity levels
Support for TB, LR, RL, and BT flowchart directions
Visual indicators when simulations stop upon achieving goals
Simulate hours of behavior in milliseconds with precise control
Virtual time speedup calculations and real-time comparisons
Sequence diagrams showing every message exchange
Install GenServerVirtualTime from Hex:
def deps do
[
{:gen_server_virtual_time, "~> 0.4.0"}
]
end
Generate your own flowchart report:
simulation = ActorSimulation.new()
|> ActorSimulation.add_actor(:producer,
send_pattern: {:rate, 100, :data},
targets: [:consumer])
|> ActorSimulation.add_actor(:consumer)
|> ActorSimulation.run(duration: 5000)
html = ActorSimulation.generate_flowchart_report(simulation,
title: "My System",
layout: "TB")
File.write!("report.html", html)