Skip to content

Commit 6aa3b85

Browse files
committed
fixing readme
1 parent 3b5ff10 commit 6aa3b85

File tree

1 file changed

+28
-18
lines changed

1 file changed

+28
-18
lines changed

README.md

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,6 @@ With the new **event injection engine**, you can explore *what-if* dynamics: net
2727

2828
---
2929

30-
### What Problem Does It Solve?
31-
32-
Predicting how an async system will behave under real-world load is notoriously hard. Teams often rely on rough guesses, over-provisioning, or painful production incidents. **AsyncFlow replaces guesswork with scenario-driven simulations**: you declare the conditions (network RTT, jitter, resource limits, injected failures) and observe the consequences on latency, throughput, and resource pressure.
33-
34-
---
35-
36-
### Why Scenario-Driven? *Design Before You Code*
37-
38-
AsyncFlow doesn’t need your backend to exist.
39-
You can model your architecture with YAML or Python, run simulations, and explore bottlenecks **before writing production code**.
40-
This scenario-driven approach lets you stress-test scaling strategies, network assumptions, and failure modes safely and repeatably.
41-
42-
---
43-
4430
### How Does It Work?
4531

4632
AsyncFlow represents your system as a **directed graph of components**, for example: clients, load balancers, servers—connected by network edges with configurable latency models. Each server is **event-loop aware**: CPU work blocks, RAM stays allocated, and I/O yields the loop, just like real async frameworks. You can define topologies via **YAML** or a **Pythonic builder**.
@@ -49,19 +35,43 @@ AsyncFlow represents your system as a **directed graph of components**, for exam
4935

5036
Run the simulation and inspect the outputs:
5137

52-
<p>
38+
<!-- Hero full-width -->
39+
<p align="center">
5340
<a href="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_dashboard.png">
54-
<img src="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_dashboard.png" alt="Latency + Throughput Dashboard" width="300">
41+
<img src="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_dashboard.png"
42+
alt="Latency + Throughput Dashboard"
43+
style="max-width:100%;height:auto;" loading="lazy">
5544
</a>
45+
</p>
46+
47+
<!-- Due immagini affiancate -->
48+
<p align="center">
5649
<a href="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_server_srv-1_metrics.png">
57-
<img src="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_server_srv-1_metrics.png" alt="Server 1 Metrics" width="300">
50+
<img src="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_server_srv-1_metrics.png"
51+
alt="Server 1 Metrics" width="49%" loading="lazy">
5852
</a>
5953
<a href="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_server_srv-2_metrics.png">
60-
<img src="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_server_srv-2_metrics.png" alt="Server 2 Metrics" width="300">
54+
<img src="https://raw.githubusercontent.com/AsyncFlow-Sim/AsyncFlow/main/readme_img/lb_server_srv-2_metrics.png"
55+
alt="Server 2 Metrics" width="49%" loading="lazy">
6156
</a>
6257
</p>
6358

6459

60+
61+
---
62+
63+
### What Problem Does It Solve?
64+
65+
Predicting how an async system will behave under real-world load is notoriously hard. Teams often rely on rough guesses, over-provisioning, or painful production incidents. **AsyncFlow replaces guesswork with scenario-driven simulations**: you declare the conditions (network RTT, jitter, resource limits, injected failures) and observe the consequences on latency, throughput, and resource pressure.
66+
67+
---
68+
69+
### Why Scenario-Driven? *Design Before You Code*
70+
71+
AsyncFlow doesn’t need your backend to exist.
72+
You can model your architecture with YAML or Python, run simulations, and explore bottlenecks **before writing production code**.
73+
This scenario-driven approach lets you stress-test scaling strategies, network assumptions, and failure modes safely and repeatably.
74+
6575
---
6676

6777
### What Questions Can It Answer?

0 commit comments

Comments
 (0)