From 4ffbf730eeb57defe7c4f317d5d0be725071e4b1 Mon Sep 17 00:00:00 2001 From: GioeleB00 Date: Thu, 14 Aug 2025 16:50:04 +0200 Subject: [PATCH 1/2] Reafctor for the folder schemas + defined import for public api --- .../metrics_to_measure.md | 0 .../requests_generator.md | 2 +- .../runtime_and_resources.md | 0 .../simulation_input.md | 8 +- .../simulation_runner.md | 0 .../time_series_metric_architecture.md | 0 docs/pybuilder.md | 20 +- examples/single_server_pybuilder.png | Bin 152423 -> 162085 bytes examples/single_server_pybuilder.py | 14 +- src/asyncflow/__init__.py | 20 +- src/asyncflow/components/__init__.py | 17 + src/asyncflow/enums/__init__.py | 8 + src/asyncflow/metrics/analyzer.py | 2 +- src/asyncflow/metrics/collector.py | 2 +- src/asyncflow/pybuilder/input_builder.py | 20 +- src/asyncflow/resources/registry.py | 2 +- src/asyncflow/resources/server_containers.py | 4 +- src/asyncflow/runtime/actors/client.py | 2 +- src/asyncflow/runtime/actors/edge.py | 6 +- src/asyncflow/runtime/actors/load_balancer.py | 2 +- src/asyncflow/runtime/actors/rqs_generator.py | 8 +- src/asyncflow/runtime/actors/server.py | 4 +- src/asyncflow/runtime/simulation_runner.py | 10 +- src/asyncflow/samplers/common_helpers.py | 2 +- src/asyncflow/samplers/gaussian_poisson.py | 6 +- src/asyncflow/samplers/poisson_poisson.py | 6 +- src/asyncflow/schemas/common/__init__.py | 1 + .../random_variables.py} | 0 .../schemas/full_simulation_input.py | 15 - src/asyncflow/schemas/payload.py | 15 + src/asyncflow/schemas/settings/__init__.py | 1 + .../simulation.py} | 0 .../system_topology/full_system_topology.py | 391 ------------------ src/asyncflow/schemas/topology/__init__.py | 1 + src/asyncflow/schemas/topology/edges.py | 99 +++++ .../{system_topology => topology}/endpoint.py | 0 src/asyncflow/schemas/topology/graph.py | 159 +++++++ src/asyncflow/schemas/topology/nodes.py | 164 ++++++++ src/asyncflow/schemas/workload/__init__.py | 1 + .../generator.py} | 4 +- tests/conftest.py | 20 +- tests/integration/minimal/conftest.py | 10 +- tests/integration/minimal/test_minimal.py | 2 +- .../payload/test_payload_invalid.py | 2 +- tests/unit/metrics/test_analyzer.py | 2 +- tests/unit/pybuilder/test_input_builder.py | 17 +- tests/unit/resources/test_registry.py | 6 +- .../unit/resources/test_server_containers.py | 2 +- tests/unit/runtime/actors/test_client.py | 4 +- tests/unit/runtime/actors/test_edge.py | 6 +- .../unit/runtime/actors/test_load_balancer.py | 2 +- .../unit/runtime/actors/test_rqs_generator.py | 12 +- tests/unit/runtime/actors/test_server.py | 6 +- tests/unit/runtime/test_simulation_runner.py | 2 +- tests/unit/samplers/test_gaussian_poisson.py | 18 +- tests/unit/samplers/test_poisson_poisson.py | 22 +- tests/unit/samplers/test_sampler_helper.py | 2 +- ...est_endpoint_input.py => test_endpoint.py} | 2 +- ...s_generator_input.py => test_generator.py} | 26 +- ...ull_topology_input.py => test_topology.py} | 10 +- 60 files changed, 632 insertions(+), 557 deletions(-) rename docs/{fastsim-docs => asyncflow-docs}/metrics_to_measure.md (100%) rename docs/{fastsim-docs => asyncflow-docs}/requests_generator.md (99%) rename docs/{fastsim-docs => asyncflow-docs}/runtime_and_resources.md (100%) rename docs/{fastsim-docs => asyncflow-docs}/simulation_input.md (98%) rename docs/{fastsim-docs => asyncflow-docs}/simulation_runner.md (100%) rename docs/{fastsim-docs => asyncflow-docs}/time_series_metric_architecture.md (100%) create mode 100644 src/asyncflow/components/__init__.py create mode 100644 src/asyncflow/enums/__init__.py create mode 100644 src/asyncflow/schemas/common/__init__.py rename src/asyncflow/schemas/{random_variables_config.py => common/random_variables.py} (100%) delete mode 100644 src/asyncflow/schemas/full_simulation_input.py create mode 100644 src/asyncflow/schemas/payload.py create mode 100644 src/asyncflow/schemas/settings/__init__.py rename src/asyncflow/schemas/{simulation_settings_input.py => settings/simulation.py} (100%) delete mode 100644 src/asyncflow/schemas/system_topology/full_system_topology.py create mode 100644 src/asyncflow/schemas/topology/__init__.py create mode 100644 src/asyncflow/schemas/topology/edges.py rename src/asyncflow/schemas/{system_topology => topology}/endpoint.py (100%) create mode 100644 src/asyncflow/schemas/topology/graph.py create mode 100644 src/asyncflow/schemas/topology/nodes.py create mode 100644 src/asyncflow/schemas/workload/__init__.py rename src/asyncflow/schemas/{rqs_generator_input.py => workload/generator.py} (95%) rename tests/unit/schemas/{test_endpoint_input.py => test_endpoint.py} (98%) rename tests/unit/schemas/{test_requests_generator_input.py => test_generator.py} (92%) rename tests/unit/schemas/{test_full_topology_input.py => test_topology.py} (97%) diff --git a/docs/fastsim-docs/metrics_to_measure.md b/docs/asyncflow-docs/metrics_to_measure.md similarity index 100% rename from docs/fastsim-docs/metrics_to_measure.md rename to docs/asyncflow-docs/metrics_to_measure.md diff --git a/docs/fastsim-docs/requests_generator.md b/docs/asyncflow-docs/requests_generator.md similarity index 99% rename from docs/fastsim-docs/requests_generator.md rename to docs/asyncflow-docs/requests_generator.md index eab8080..eb40121 100644 --- a/docs/fastsim-docs/requests_generator.md +++ b/docs/asyncflow-docs/requests_generator.md @@ -104,7 +104,7 @@ class RVConfig(BaseModel): return model -class RqsGeneratorInput(BaseModel): +class RqsGenerator(BaseModel): """Define the expected variables for the simulation""" id: str diff --git a/docs/fastsim-docs/runtime_and_resources.md b/docs/asyncflow-docs/runtime_and_resources.md similarity index 100% rename from docs/fastsim-docs/runtime_and_resources.md rename to docs/asyncflow-docs/runtime_and_resources.md diff --git a/docs/fastsim-docs/simulation_input.md b/docs/asyncflow-docs/simulation_input.md similarity index 98% rename from docs/fastsim-docs/simulation_input.md rename to docs/asyncflow-docs/simulation_input.md index d5d860c..f6bbbcd 100644 --- a/docs/fastsim-docs/simulation_input.md +++ b/docs/asyncflow-docs/simulation_input.md @@ -7,7 +7,7 @@ The entry point is: ```python class SimulationPayload(BaseModel): """Full input structure to perform a simulation""" - rqs_input: RqsGeneratorInput + rqs_input: RqsGenerator topology_graph: TopologyGraph sim_settings: SimulationSettings ``` @@ -43,12 +43,12 @@ Everything the engine needs is captured by these three components: --- -## 1) Workload: `RqsGeneratorInput` +## 1) Workload: `RqsGenerator` **Purpose:** Defines the stochastic traffic generator that produces request arrivals. ```python -class RqsGeneratorInput(BaseModel): +class RqsGenerator(BaseModel): id: str type: SystemNodes = SystemNodes.GENERATOR avg_active_users: RVConfig @@ -279,7 +279,7 @@ class SimulationSettings(BaseModel): ## 5) Validation Checklist (What is guaranteed if the payload parses) -### Workload (`RqsGeneratorInput`, `RVConfig`) +### Workload (`RqsGenerator`, `RVConfig`) * `mean` is numeric (`int|float`) and coerced to `float`. * If `distribution ∈ {NORMAL, LOG_NORMAL}` and `variance is None` → `variance := mean`. diff --git a/docs/fastsim-docs/simulation_runner.md b/docs/asyncflow-docs/simulation_runner.md similarity index 100% rename from docs/fastsim-docs/simulation_runner.md rename to docs/asyncflow-docs/simulation_runner.md diff --git a/docs/fastsim-docs/time_series_metric_architecture.md b/docs/asyncflow-docs/time_series_metric_architecture.md similarity index 100% rename from docs/fastsim-docs/time_series_metric_architecture.md rename to docs/asyncflow-docs/time_series_metric_architecture.md diff --git a/docs/pybuilder.md b/docs/pybuilder.md index 19b7b24..eb5d9fb 100644 --- a/docs/pybuilder.md +++ b/docs/pybuilder.md @@ -9,7 +9,7 @@ Under the hood, the builder assembles a single `SimulationPayload`: ```python SimulationPayload( - rqs_input=RqsGeneratorInput(...), # traffic generator (workload) + rqs_input=RqsGenerator(...), # traffic generator (workload) topology_graph=TopologyGraph(...), # system architecture as a graph sim_settings=SimulationSettings(...), # global settings and metrics ) @@ -31,7 +31,7 @@ import simpy from asyncflow.pybuilder.input_builder import AsyncFlow from asyncflow.runtime.simulation_runner import SimulationRunner from asyncflow.schemas.full_simulation_input import SimulationPayload -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput +from asyncflow.schemas.rqs_generator_input import RqsGenerator from asyncflow.schemas.simulation_settings_input import SimulationSettings from asyncflow.schemas.system_topology.endpoint import Endpoint from asyncflow.schemas.system_topology.full_system_topology import ( @@ -39,7 +39,7 @@ from asyncflow.schemas.system_topology.full_system_topology import ( ) # 1) Workload -generator = RqsGeneratorInput( +generator = RqsGenerator( id="rqs-1", avg_active_users={"mean": 50, "distribution": "poisson"}, avg_request_per_minute_per_user={"mean": 30, "distribution": "poisson"}, @@ -148,12 +148,12 @@ dictionary that Pydantic converts into an `RVConfig`: --- -## 2) Workload: `RqsGeneratorInput` +## 2) Workload: `RqsGenerator` ```python -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput +from asyncflow.schemas.rqs_generator_input import RqsGenerator -generator = RqsGeneratorInput( +generator = RqsGenerator( id="rqs-1", avg_active_users={ "mean": 100, @@ -381,10 +381,10 @@ fig.savefig("single_server_pybuilder.png") | YAML path | Builder (Python) | | --------------------------------------------- | ---------------------------------------------------------------- | -| `rqs_input.id` | `RqsGeneratorInput(id=...)` | -| `rqs_input.avg_active_users.*` | `RqsGeneratorInput(avg_active_users={...})` | -| `rqs_input.avg_request_per_minute_per_user.*` | `RqsGeneratorInput(avg_request_per_minute_per_user={...})` | -| `rqs_input.user_sampling_window` | `RqsGeneratorInput(user_sampling_window=...)` | +| `rqs_input.id` | `RqsGenerator(id=...)` | +| `rqs_input.avg_active_users.*` | `RqsGenerator(avg_active_users={...})` | +| `rqs_input.avg_request_per_minute_per_user.*` | `RqsGenerator(avg_request_per_minute_per_user={...})` | +| `rqs_input.user_sampling_window` | `RqsGenerator(user_sampling_window=...)` | | `topology_graph.nodes.client.id` | `Client(id=...)` | | `topology_graph.nodes.servers[*]` | `Server(id=..., server_resources={...}, endpoints=[...])` | | `endpoint.endpoint_name` | `Endpoint(endpoint_name=...)` | diff --git a/examples/single_server_pybuilder.png b/examples/single_server_pybuilder.png index 575c50bd5c172a3a20475678be3327db586ac536..20166b05a07e2bae6753b92bcf0d9a7b9c07e8a5 100644 GIT binary patch literal 162085 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 z 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⪙rlx**k8{$)R%BnRH$2*3jjb*VV^>TUE>&dpCfu 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ípV;+%g?+*| zEeFFLUEK^@RTp(LIbO~3N(d2P#VQbgFO|ZN z%c<$GzAIzulp-TVo)*+nRehBrkT2H-gqhyTT&$7+(?SH z{*~#6?r0T0Dm&T0F{9}-X~j@AZ998lfMYdQOp)z<*$?{7dD3Wt)g+~hIe{TUP+xp> zZg-qmPPm^RlP-Yn8-dko8z}V`DOYzXeV5zN(#~TIv|}ZKnzz{$BE1(5=5w(9%VjE5 zU-ma0Z97VA&<{E;4J;0#(=el7UK_lo&-!|jW3-4>ffTxeo|j^CmN|_c6Pmf9UMw}v ziHl6IM)`VMg$hM1#YLk*X_;4-yaS3URpOX_u#E1FK<`?&#;Q;(HO3H3C++9d{J4Zu zA*8`I`*Tr8OAqtJ( z{Oi>yDA$%VIJ4}ZuAho&am~ivxh8|V9C!8m%tWP4>V?Vi&*76Y6V^-n=!6WbR&9SV zZZ6z2*m1Z%mt}-&AA!lV8hGnHsSf#t<#e{I6U;i^S){Nt1b?!uvLBBsly&cOpUy}w zX#OpYmPRXY^W(RN`)|>b^~k`MD5lmrzl4j4Xy;>Z+tStxY+}*1^dIN4@(bx1_+K3U z818)0J~p$`7>CQA-OT54pnxn56l2hwF7LW^SVf&FGRc^f*X`OOCLETMrEYwW<SE&D@;X$>yhvPF=JJrO>M*{ZG6L{mbxtfEpnfm)GyWW!b&u z-0t@GdEOW?1~<#ins$a5pEcRzq{M`TEU+AQxdJKv9%{og1pfW!tt5EY2fi$yNqd8U zaH%_19$!~?mxuDH5;*kd-UWtbg)%E8%uf3@)Y)Dlz@{dcR@rwKHrA3*9+(#Q`EN^F zO&S^5=lym>mZ?nte^`X;q$9$9^!dW2NC-6`M4ZdDLX>pr`DZta;pdwnuc`YZk0Afxng1tp0-yZz(h$Hdfj9qoAyUl0e}7H;|Mr1O zpfD1vIrbYj?iv{2r9l#e|8o(B?a_H&UF;a&HE3aziWr}Y#`D!+ zo8i|7`kMdxEwXjCl5Q|2w@;l-ITz!HgrgPk0F8x)0@*dsMFCkIyNiENr=QhjWqdig zxliiTuRNhW%3A_u12I41;?SjtuQi_j%dwJ+VUV@6vumwZoA&NDk7+l$B)U=BZqDF4 zAilWwQxpEA^%KoQpMO>Tq<}5BU2N~qyF}r~OOl>>K;b$&JNs)~&29K!TUVIj7x38f z(|~&+>n{Pe(@Du^>c7|czdmW?Z+7?D+;I^B!#;dl=yiX-^qq=mUm?!owWQXxznc`K z8xUpw-Ka=oYjv9Pn8Mk4V6POZa;IniqsML~ji~v}ylk0g@D*MBv-+Zoo$A}J)}&tl z{2x{SgN=kN$Ohykn}IB>x%v5l;(HR13}LczZO8!Z<7SZC!XN|UHstp}F16D(v%*J^ z*aqI+Wn^MvLQam3HU%_I@LBhzx7E1LKTl2$-`R0Ta4JZD;Ps=Z>_S94asQ($%*Nxr;Lg>7 z;0dq(N_$-ZVXg@XP=G$w{P77s{kBhcwljz;#F%Io#Sb#gX<~dW#CE@F5@WWk7yBRY zMIVYzw+d_hC?TToEx6sru&UN+e#&<1ry@PvCHC?Vb`k_R17r^a%*Z>{PE!ckLQX-! zW?W(LJ}V1-s@CHZTpF`nYTEg#1bGpHn*a=&!Efai6+Z&zcUN0`LC*@{$I(iADoSpX zNCdfP3#X`AEvhryCACXi=t?vPf=92;lN0_-0AdVeWMpP#eJt%ph(3hXJb)OsQoq9o zNMaJ~=7r{sLw0S;1KFUNl|0w=k{g*#Gzy=C>lxyID1rU}2!%xvDOez2g}F3RxhD9YpA7c+YH zJ-uh)V#68nZAY38Lt(=4GI?LCo$uMg%0@5gt9UZR z2$m92h!xys3--8fS#m~BTOiSIx$x1`4@a0B4%2 z=chq3<+mU1Ua#?5`HBTDPqgKoXu2>McG|hkex$%Qg-l-cyLTT05wn>jHwFnXJisGW z&*N_z#Uz{_?`MOnXfu>Y0sGstlM_Fb==3iAs(NXgu$BXKUqkp7l&fl`x>P^aU3n+S zu-uP!Z1oCts$Za^AS18@Lf@Y#YI{*oQlba0ZB_N%;NXz)^sJgVsi_gNu&@wHxH|Kn z>=4SKUF%=0pnl&x*M8&ZQfxhhl^|-}ySzMU5Th3RGGe0XMa))*3q=?2@;Oh7I!xDJ zf*!V+-0mj!`)GId8Itl0M$~NxnL)z5jNAugM?bi+#(0Uf!+OJp@Q2-w2-ds(NONuI zr7$^AT;u{s);)N(Q%Aa*I~DdLM26K)ve2T9hl{kp?xA%ha_iRWc?<(mwFMj46uhC( zm>At!q1}%QiTB_hIv5CcR!1&^r`WE04<2d_!2}>)hFt$&%W6A%!H4YP#uv16U{de5 zt27xqQ%e^OgWiiY(pb##i{N%hn5mDCPxQ(^^pN57 zc1>3U_nr@v8j|muatoRKO}xKjxvvfr7B`&<$N0n}-3pk0BryVlvx&hnge0lBNy9^+K0na!!{~TbLSkmU=GSQHr^2~9p!#5N%>u=+ z)aR-PfbNiIhHQ2BWpx;yF<=vUoa}B)(E=#xCc5YvQv|L$fR4lv@;2vV(g&N`u;8{V z&Z_#)<|9q_(z6_*$|@p?a`!Frc%SV>1?*s{BhXWGAz4ESn6AY5^z@B{^^7209UT_O zu`=25GRp`|N#xpS4yR$2yj(P0ER#ZPpx09Yp&R5`GvNd!!n zMs;!3DgPYEepUhbO}3z0{TUmeFw}panDY>G4{R{2hqel-JkS{|eY~QL9oO z1%vMzuPq>DUm@)-2ef9T7_q%1rVBw8kmsfl2X#W52RXgMoNG)4h_8A_5c8A^gNj1F zPGKC39xOmEsk>XXN%HoP&OLx#`1-r~vO_E%6583kr**7sB54B4fe{3<*-inANr&9UUerv)mtkkRtMzH~8lR znNk=(e*Bn~0JRsoAR^O3Xl5piWO_9&uO}KkHzvcNx6{EVzjSo89Bj?I!t9b^S#D5x zu$bcP0()hxN&up!S2-HOJwo6Y59FdU>Q4*Mv+-=y0 zl*mjNeUZE{D4N6(G!%lt#klG>rIBd_VZLEOclGsgQAm;`0t9EvT}1rurjy_JsxVwb z8bQmFc$M=^G*Ey$8&ea!jxhSvoSz-@0w{}6tH?XCFEXrEnSgv)3Zy@E)aT`TZ&;Nq z9;A^=5mj@@7b)Yw@9c-Q7lph(m`voL1aO6#G7Ax=q2&QN3x-`91BIlG>?{vpAc1Y; z)y^>h{?5Xk86V3myEd0H0y;P5q3nYhUd@Te5p>ptd$iDq6;S_ASU5;c6M}AC6-!;F+Mrf zP(ZMeur`#-=B(71KO)~_2e)wE{ki%5(?GqCTZP>a-h6vZJFLyd!OO2mZV#&d&7TE@ z{j;FK6?X)Vc1f`+<`2udfC9|E9jWFE4XbNU*Jqk$@^R~op%IYwf6?(HDIqQ{2r#S5fPtC?tj{Z?CSe4L<#vF@FZ{<|4eFfTT+GNrq|Fz z?)r)$yZ^vvr1KyJg3Q%qK1)1UY6J{rNWIYv2`pPcmLs>!lo%A2ty)-GzJ`Miy$=s^ z&Bu{AjnA~srckB`J@|0}@nA!ktQY?!ddFekb~lU6NVBqD6N22hHi&Q zgd7GH*RgZ|9LryZ2K@q0&BMVs6Kqa^yOCg8`ftC5(}T5OM&yMkr^p+SS8U!tmZ;2sS7!fy`~RO0oL{_=lx*AkvYH76F9lgu KnIdV^p#KF+T<~-N literal 152423 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 SimulationPayload: - Simulation settings: 500s total, sample period 50ms """ # 1) Request generator - generator = RqsGeneratorInput( + generator = RqsGenerator( id="rqs-1", avg_active_users={"mean": 100}, avg_request_per_minute_per_user={"mean": 20}, diff --git a/src/asyncflow/__init__.py b/src/asyncflow/__init__.py index 0f69098..76e9b77 100644 --- a/src/asyncflow/__init__.py +++ b/src/asyncflow/__init__.py @@ -1 +1,19 @@ -"""Main application package for the project backend.""" +"""Public modules""" +from .schemas.common.random_variables import RVConfig +from .schemas.payload import SimulationPayload +from .schemas.settings.simulation import SimulationSettings +from .schemas.topology.edges import Edge +from .schemas.topology.endpoint import Endpoint +from .schemas.topology.nodes import Client, Server +from .schemas.workload.generator import RqsGenerator + +__all__ = [ + "Client", + "Edge", + "Endpoint", + "RVConfig", + "RqsGenerator", + "Server", + "SimulationPayload", + "SimulationSettings", +] diff --git a/src/asyncflow/components/__init__.py b/src/asyncflow/components/__init__.py new file mode 100644 index 0000000..38ead63 --- /dev/null +++ b/src/asyncflow/components/__init__.py @@ -0,0 +1,17 @@ +"""Public Pydantic components (leaf schemas) for scenario building.""" +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.topology.edges import Edge +from asyncflow.schemas.topology.endpoint import Endpoint +from asyncflow.schemas.topology.nodes import Client, Server +from asyncflow.schemas.workload.generator import RqsGenerator + +__all__ = [ + "Client", + "Edge", + "Endpoint", + "RVConfig", + "RqsGenerator", + "Server", + "SimulationSettings", +] diff --git a/src/asyncflow/enums/__init__.py b/src/asyncflow/enums/__init__.py new file mode 100644 index 0000000..3fd98cb --- /dev/null +++ b/src/asyncflow/enums/__init__.py @@ -0,0 +1,8 @@ +"""Public enums used in scenario definitions.""" +from asyncflow.config.constants import ( + Distribution, + EventMetricName, + SampledMetricName, +) + +__all__ = ["Distribution", "EventMetricName", "SampledMetricName"] diff --git a/src/asyncflow/metrics/analyzer.py b/src/asyncflow/metrics/analyzer.py index 4db2ee1..35b43bb 100644 --- a/src/asyncflow/metrics/analyzer.py +++ b/src/asyncflow/metrics/analyzer.py @@ -26,7 +26,7 @@ from asyncflow.runtime.actors.client import ClientRuntime from asyncflow.runtime.actors.edge import EdgeRuntime from asyncflow.runtime.actors.server import ServerRuntime - from asyncflow.schemas.simulation_settings_input import SimulationSettings + from asyncflow.schemas.settings.simulation import SimulationSettings class ResultsAnalyzer: diff --git a/src/asyncflow/metrics/collector.py b/src/asyncflow/metrics/collector.py index 97421b7..38c2f0d 100644 --- a/src/asyncflow/metrics/collector.py +++ b/src/asyncflow/metrics/collector.py @@ -7,7 +7,7 @@ from asyncflow.config.constants import SampledMetricName from asyncflow.runtime.actors.edge import EdgeRuntime from asyncflow.runtime.actors.server import ServerRuntime -from asyncflow.schemas.simulation_settings_input import SimulationSettings +from asyncflow.schemas.settings.simulation import SimulationSettings # The idea for this class is to gather list of runtime objects that # are defined in the central class to build the simulation, in this diff --git a/src/asyncflow/pybuilder/input_builder.py b/src/asyncflow/pybuilder/input_builder.py index 7d3c26f..77977cc 100644 --- a/src/asyncflow/pybuilder/input_builder.py +++ b/src/asyncflow/pybuilder/input_builder.py @@ -4,17 +4,17 @@ from typing import Self -from asyncflow.schemas.full_simulation_input import SimulationPayload -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput -from asyncflow.schemas.simulation_settings_input import SimulationSettings -from asyncflow.schemas.system_topology.full_system_topology import ( +from asyncflow.schemas.payload import SimulationPayload +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.topology.edges import Edge +from asyncflow.schemas.topology.graph import TopologyGraph +from asyncflow.schemas.topology.nodes import ( Client, - Edge, LoadBalancer, Server, - TopologyGraph, TopologyNodes, ) +from asyncflow.schemas.workload.generator import RqsGenerator class AsyncFlow: @@ -22,17 +22,17 @@ class AsyncFlow: def __init__(self) -> None: """Instance attributes necessary to define the simulation payload""" - self._generator: RqsGeneratorInput | None = None + self._generator: RqsGenerator | None = None self._client: Client | None = None self._servers: list[Server] | None = None self._edges: list[Edge] | None = None self._sim_settings: SimulationSettings | None = None self._load_balancer: LoadBalancer | None = None - def add_generator(self, rqs_generator: RqsGeneratorInput) -> Self: + def add_generator(self, rqs_generator: RqsGenerator) -> Self: """Method to instantiate the generator""" - if not isinstance(rqs_generator, RqsGeneratorInput): - msg = "You must add a RqsGeneratorInput instance" + if not isinstance(rqs_generator, RqsGenerator): + msg = "You must add a RqsGenerator instance" raise TypeError(msg) self._generator = rqs_generator return self diff --git a/src/asyncflow/resources/registry.py b/src/asyncflow/resources/registry.py index 6e1e3be..26576ba 100644 --- a/src/asyncflow/resources/registry.py +++ b/src/asyncflow/resources/registry.py @@ -10,7 +10,7 @@ import simpy from asyncflow.resources.server_containers import ServerContainers, build_containers -from asyncflow.schemas.system_topology.full_system_topology import TopologyGraph +from asyncflow.schemas.topology.graph import TopologyGraph class ResourcesRuntime: diff --git a/src/asyncflow/resources/server_containers.py b/src/asyncflow/resources/server_containers.py index ca054c2..1401247 100644 --- a/src/asyncflow/resources/server_containers.py +++ b/src/asyncflow/resources/server_containers.py @@ -12,9 +12,7 @@ import simpy from asyncflow.config.constants import ServerResourceName -from asyncflow.schemas.system_topology.full_system_topology import ( - ServerResources, -) +from asyncflow.schemas.topology.nodes import ServerResources # ============================================================== # DICT FOR THE REGISTRY TO INITIALIZE RESOURCES FOR EACH SERVER diff --git a/src/asyncflow/runtime/actors/client.py b/src/asyncflow/runtime/actors/client.py index 58ba7e9..6c752f1 100644 --- a/src/asyncflow/runtime/actors/client.py +++ b/src/asyncflow/runtime/actors/client.py @@ -8,7 +8,7 @@ from asyncflow.config.constants import SystemNodes from asyncflow.metrics.client import RqsClock from asyncflow.runtime.actors.edge import EdgeRuntime -from asyncflow.schemas.system_topology.full_system_topology import Client +from asyncflow.schemas.topology.nodes import Client if TYPE_CHECKING: from asyncflow.runtime.rqs_state import RequestState diff --git a/src/asyncflow/runtime/actors/edge.py b/src/asyncflow/runtime/actors/edge.py index c2c5328..ee2131d 100644 --- a/src/asyncflow/runtime/actors/edge.py +++ b/src/asyncflow/runtime/actors/edge.py @@ -16,11 +16,11 @@ from asyncflow.metrics.edge import build_edge_metrics from asyncflow.runtime.rqs_state import RequestState from asyncflow.samplers.common_helpers import general_sampler -from asyncflow.schemas.simulation_settings_input import SimulationSettings -from asyncflow.schemas.system_topology.full_system_topology import Edge +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.topology.edges import Edge if TYPE_CHECKING: - from asyncflow.schemas.random_variables_config import RVConfig + from asyncflow.schemas.common.random_variables import RVConfig diff --git a/src/asyncflow/runtime/actors/load_balancer.py b/src/asyncflow/runtime/actors/load_balancer.py index fac3f66..8a426cc 100644 --- a/src/asyncflow/runtime/actors/load_balancer.py +++ b/src/asyncflow/runtime/actors/load_balancer.py @@ -11,7 +11,7 @@ least_connections, round_robin, ) -from asyncflow.schemas.system_topology.full_system_topology import LoadBalancer +from asyncflow.schemas.topology.nodes import LoadBalancer if TYPE_CHECKING: from asyncflow.runtime.rqs_state import RequestState diff --git a/src/asyncflow/runtime/actors/rqs_generator.py b/src/asyncflow/runtime/actors/rqs_generator.py index 6c983df..702fe78 100644 --- a/src/asyncflow/runtime/actors/rqs_generator.py +++ b/src/asyncflow/runtime/actors/rqs_generator.py @@ -21,8 +21,8 @@ import simpy from asyncflow.runtime.actors.edge import EdgeRuntime - from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput - from asyncflow.schemas.simulation_settings_input import SimulationSettings + from asyncflow.schemas.settings.simulation import SimulationSettings + from asyncflow.schemas.workload.generator import RqsGenerator class RqsGeneratorRuntime: @@ -36,7 +36,7 @@ def __init__( *, env: simpy.Environment, out_edge: EdgeRuntime | None, - rqs_generator_data: RqsGeneratorInput, + rqs_generator_data: RqsGenerator, sim_settings: SimulationSettings, rng: np.random.Generator | None = None, ) -> None: @@ -46,7 +46,7 @@ def __init__( Args: env (simpy.Environment): environment for the simulation out_edge (EdgeRuntime): edge connecting this node with the next one - rqs_generator_data (RqsGeneratorInput): data do define the sampler + rqs_generator_data (RqsGenerator): data do define the sampler sim_settings (SimulationSettings): settings to start the simulation rng (np.random.Generator | None, optional): random variable generator. diff --git a/src/asyncflow/runtime/actors/server.py b/src/asyncflow/runtime/actors/server.py index 7d72de1..0572956 100644 --- a/src/asyncflow/runtime/actors/server.py +++ b/src/asyncflow/runtime/actors/server.py @@ -22,8 +22,8 @@ from asyncflow.resources.server_containers import ServerContainers from asyncflow.runtime.actors.edge import EdgeRuntime from asyncflow.runtime.rqs_state import RequestState -from asyncflow.schemas.simulation_settings_input import SimulationSettings -from asyncflow.schemas.system_topology.full_system_topology import Server +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.topology.nodes import Server class ServerRuntime: diff --git a/src/asyncflow/runtime/simulation_runner.py b/src/asyncflow/runtime/simulation_runner.py index f82fb72..1bd1c77 100644 --- a/src/asyncflow/runtime/simulation_runner.py +++ b/src/asyncflow/runtime/simulation_runner.py @@ -16,18 +16,18 @@ from asyncflow.runtime.actors.load_balancer import LoadBalancerRuntime from asyncflow.runtime.actors.rqs_generator import RqsGeneratorRuntime from asyncflow.runtime.actors.server import ServerRuntime -from asyncflow.schemas.full_simulation_input import SimulationPayload +from asyncflow.schemas.payload import SimulationPayload if TYPE_CHECKING: from collections.abc import Iterable - from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput - from asyncflow.schemas.system_topology.full_system_topology import ( + from asyncflow.schemas.topology.edges import Edge + from asyncflow.schemas.topology.nodes import ( Client, - Edge, LoadBalancer, Server, ) + from asyncflow.schemas.workload.generator import RqsGenerator # --- PROTOCOL DEFINITION --- # This is the contract that all runtime actors must follow. @@ -63,7 +63,7 @@ def __init__( # instantiation of object needed to build nodes for the runtime phase self.servers: list[Server] = simulation_input.topology_graph.nodes.servers self.client: Client = simulation_input.topology_graph.nodes.client - self.rqs_generator: RqsGeneratorInput = simulation_input.rqs_input + self.rqs_generator: RqsGenerator = simulation_input.rqs_input self.lb: LoadBalancer | None = None self.simulation_settings = simulation_input.sim_settings self.edges: list[Edge] = simulation_input.topology_graph.edges diff --git a/src/asyncflow/samplers/common_helpers.py b/src/asyncflow/samplers/common_helpers.py index 123ae4a..4f2f675 100644 --- a/src/asyncflow/samplers/common_helpers.py +++ b/src/asyncflow/samplers/common_helpers.py @@ -4,7 +4,7 @@ import numpy as np from asyncflow.config.constants import Distribution -from asyncflow.schemas.random_variables_config import RVConfig +from asyncflow.schemas.common.random_variables import RVConfig def uniform_variable_generator(rng: np.random.Generator) -> float: diff --git a/src/asyncflow/samplers/gaussian_poisson.py b/src/asyncflow/samplers/gaussian_poisson.py index 5caa9ed..c418184 100644 --- a/src/asyncflow/samplers/gaussian_poisson.py +++ b/src/asyncflow/samplers/gaussian_poisson.py @@ -16,12 +16,12 @@ truncated_gaussian_generator, uniform_variable_generator, ) -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput -from asyncflow.schemas.simulation_settings_input import SimulationSettings +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.workload.generator import RqsGenerator def gaussian_poisson_sampling( - input_data: RqsGeneratorInput, + input_data: RqsGenerator, sim_settings: SimulationSettings, *, rng: np.random.Generator, diff --git a/src/asyncflow/samplers/poisson_poisson.py b/src/asyncflow/samplers/poisson_poisson.py index 5e1b4cc..13d72ff 100644 --- a/src/asyncflow/samplers/poisson_poisson.py +++ b/src/asyncflow/samplers/poisson_poisson.py @@ -13,12 +13,12 @@ poisson_variable_generator, uniform_variable_generator, ) -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput -from asyncflow.schemas.simulation_settings_input import SimulationSettings +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.workload.generator import RqsGenerator def poisson_poisson_sampling( - input_data: RqsGeneratorInput, + input_data: RqsGenerator, sim_settings: SimulationSettings, *, rng: np.random.Generator, diff --git a/src/asyncflow/schemas/common/__init__.py b/src/asyncflow/schemas/common/__init__.py new file mode 100644 index 0000000..206bfb9 --- /dev/null +++ b/src/asyncflow/schemas/common/__init__.py @@ -0,0 +1 @@ +"""Shared, reusable primitives for schema modules (e.g., RVConfig).""" diff --git a/src/asyncflow/schemas/random_variables_config.py b/src/asyncflow/schemas/common/random_variables.py similarity index 100% rename from src/asyncflow/schemas/random_variables_config.py rename to src/asyncflow/schemas/common/random_variables.py diff --git a/src/asyncflow/schemas/full_simulation_input.py b/src/asyncflow/schemas/full_simulation_input.py deleted file mode 100644 index 504396a..0000000 --- a/src/asyncflow/schemas/full_simulation_input.py +++ /dev/null @@ -1,15 +0,0 @@ -"""Definition of the full input for the simulation""" - -from pydantic import BaseModel - -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput -from asyncflow.schemas.simulation_settings_input import SimulationSettings -from asyncflow.schemas.system_topology.full_system_topology import TopologyGraph - - -class SimulationPayload(BaseModel): - """Full input structure to perform a simulation""" - - rqs_input: RqsGeneratorInput - topology_graph: TopologyGraph - sim_settings: SimulationSettings diff --git a/src/asyncflow/schemas/payload.py b/src/asyncflow/schemas/payload.py new file mode 100644 index 0000000..4ab4363 --- /dev/null +++ b/src/asyncflow/schemas/payload.py @@ -0,0 +1,15 @@ +"""Definition of the full input for the simulation""" + +from pydantic import BaseModel + +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.topology.graph import TopologyGraph +from asyncflow.schemas.workload.generator import RqsGenerator + + +class SimulationPayload(BaseModel): + """Full input structure to perform a simulation""" + + rqs_input: RqsGenerator + topology_graph: TopologyGraph + sim_settings: SimulationSettings diff --git a/src/asyncflow/schemas/settings/__init__.py b/src/asyncflow/schemas/settings/__init__.py new file mode 100644 index 0000000..0f122c9 --- /dev/null +++ b/src/asyncflow/schemas/settings/__init__.py @@ -0,0 +1 @@ +"""Configuration models and utilities for global simulation settings.""" diff --git a/src/asyncflow/schemas/simulation_settings_input.py b/src/asyncflow/schemas/settings/simulation.py similarity index 100% rename from src/asyncflow/schemas/simulation_settings_input.py rename to src/asyncflow/schemas/settings/simulation.py diff --git a/src/asyncflow/schemas/system_topology/full_system_topology.py b/src/asyncflow/schemas/system_topology/full_system_topology.py deleted file mode 100644 index 7ab91bc..0000000 --- a/src/asyncflow/schemas/system_topology/full_system_topology.py +++ /dev/null @@ -1,391 +0,0 @@ -""" -Define the topology of the system as a directed graph -where nodes represents macro structure (server, client ecc ecc) -and edges how these strcutures are connected and the network -latency necessary for the requests generated to move from -one structure to another -""" - -from collections import Counter - -from pydantic import ( - BaseModel, - ConfigDict, - Field, - PositiveInt, - field_validator, - model_validator, -) -from pydantic_core.core_schema import ValidationInfo - -from asyncflow.config.constants import ( - LbAlgorithmsName, - NetworkParameters, - ServerResourcesDefaults, - SystemEdges, - SystemNodes, -) -from asyncflow.schemas.random_variables_config import RVConfig -from asyncflow.schemas.system_topology.endpoint import Endpoint - -#------------------------------------------------------------- -# Definition of the nodes structure for the graph representing -# the topoogy of the system defined for the simulation -#------------------------------------------------------------- - -# ------------------------------------------------------------- -# CLIENT -# ------------------------------------------------------------- - -class Client(BaseModel): - """Definition of the client class""" - - id: str - type: SystemNodes = SystemNodes.CLIENT - - @field_validator("type", mode="after") - def ensure_type_is_standard(cls, v: SystemNodes) -> SystemNodes: # noqa: N805 - """Ensure the type of the client is standard""" - if v != SystemNodes.CLIENT: - msg = f"The type should have a standard value: {SystemNodes.CLIENT}" - raise ValueError(msg) - return v - -# ------------------------------------------------------------- -# SERVER RESOURCES -# ------------------------------------------------------------- - -class ServerResources(BaseModel): - """ - Defines the quantifiable resources available on a server node. - Each attribute maps directly to a SimPy resource primitive. - """ - - cpu_cores: PositiveInt = Field( - ServerResourcesDefaults.CPU_CORES, - ge = ServerResourcesDefaults.MINIMUM_CPU_CORES, - description="Number of CPU cores available for processing.", - ) - db_connection_pool: PositiveInt | None = Field( - ServerResourcesDefaults.DB_CONNECTION_POOL, - description="Size of the database connection pool, if applicable.", - ) - - # Risorse modellate come simpy.Container (livello) - ram_mb: PositiveInt = Field( - ServerResourcesDefaults.RAM_MB, - ge = ServerResourcesDefaults.MINIMUM_RAM_MB, - description="Total available RAM in Megabytes.") - - # for the future - # disk_iops_limit: PositiveInt | None = None - # network_throughput_mbps: PositiveInt | None = None - -# ------------------------------------------------------------- -# SERVER -# ------------------------------------------------------------- - -class Server(BaseModel): - """ - definition of the server class: - - id: is the server identifier - - type: is the type of node in the structure - - server resources: is a dictionary to define the resources - of the machine where the server is living - - endpoints: is the list of all endpoints in a server - """ - - id: str - type: SystemNodes = SystemNodes.SERVER - #Later define a valide structure for the keys of server resources - server_resources : ServerResources - endpoints : list[Endpoint] - - @field_validator("type", mode="after") - def ensure_type_is_standard(cls, v: SystemNodes) -> SystemNodes: # noqa: N805 - """Ensure the type of the server is standard""" - if v != SystemNodes.SERVER: - msg = f"The type should have a standard value: {SystemNodes.SERVER}" - raise ValueError(msg) - return v - -class LoadBalancer(BaseModel): - """ - basemodel for the load balancer - - id: unique name associated to the lb - - type: type of the node in the structure - - server_covered: list of server id connected to the lb - """ - - id: str - type: SystemNodes = SystemNodes.LOAD_BALANCER - algorithms: LbAlgorithmsName = LbAlgorithmsName.ROUND_ROBIN - server_covered: set[str] = Field(default_factory=set) - - - - @field_validator("type", mode="after") - def ensure_type_is_standard(cls, v: SystemNodes) -> SystemNodes: # noqa: N805 - """Ensure the type of the server is standard""" - if v != SystemNodes.LOAD_BALANCER: - msg = f"The type should have a standard value: {SystemNodes.LOAD_BALANCER}" - raise ValueError(msg) - return v - -# ------------------------------------------------------------- -# NODES CLASS WITH ALL POSSIBLE OBJECTS REPRESENTED BY A NODE -# ------------------------------------------------------------- - -class TopologyNodes(BaseModel): - """ - Definition of the nodes class: - - server: represent all servers implemented in the system - - client: is a simple object with just a name representing - the origin of the graph - """ - - servers: list[Server] - client: Client - load_balancer: LoadBalancer | None = None - - @model_validator(mode="after") # type: ignore[arg-type] - def unique_ids( - cls, # noqa: N805 - model: "TopologyNodes", - ) -> "TopologyNodes": - """Check that all id are unique""" - ids = [server.id for server in model.servers] + [model.client.id] - - if model.load_balancer is not None: - ids.append(model.load_balancer.id) - - counter = Counter(ids) - duplicate = [node_id for node_id, value in counter.items() if value > 1] - if duplicate: - msg = f"The following node ids are duplicate {duplicate}" - raise ValueError(msg) - return model - - model_config = ConfigDict(extra="forbid") - -#------------------------------------------------------------- -# Definition of the edges structure for the graph representing -# the topoogy of the system defined for the simulation -#------------------------------------------------------------- - -class Edge(BaseModel): - """ - A directed connection in the topology graph. - - Attributes - ---------- - source : str - Identifier of the source node (where the request comes from). - target : str - Identifier of the destination node (where the request goes to). - latency : RVConfig - Random-variable configuration for network latency on this link. - probability : float - Probability of taking this edge when there are multiple outgoing links. - Must be in [0.0, 1.0]. Defaults to 1.0 (always taken). - edge_type : SystemEdges - Category of the link (e.g. network, queue, stream). - - """ - - id: str - source: str - target: str - latency: RVConfig - edge_type: SystemEdges = SystemEdges.NETWORK_CONNECTION - dropout_rate: float = Field( - NetworkParameters.DROPOUT_RATE, - ge = NetworkParameters.MIN_DROPOUT_RATE, - le = NetworkParameters.MAX_DROPOUT_RATE, - description=( - "for each nodes representing a network we define" - "a probability to drop the request" - ), - ) - - # The idea to put here the control about variance and mean about the edges - # latencies and not in RVConfig is to provide a better error handling - # providing a direct indication of the edge with the error - # The idea to put here the control about variance and mean about the edges - # latencies and not in RVConfig is to provide a better error handling - # providing a direct indication of the edge with the error - @field_validator("latency", mode="after") - def ensure_latency_is_non_negative( - cls, # noqa: N805 - v: RVConfig, - info: ValidationInfo, - ) -> RVConfig: - """Ensures that the latency's mean and variance are positive.""" - mean = v.mean - variance = v.variance - - # We can get the edge ID from the validation context for a better error message - edge_id = info.data.get("id", "unknown") - - if mean <= 0: - msg = f"The mean latency of the edge '{edge_id}' must be positive" - raise ValueError(msg) - if variance is not None and variance < 0: # Variance can be zero - msg = ( - f"The variance of the latency of the edge {edge_id}" - "must be non negative" - ) - raise ValueError(msg) - return v - - - @model_validator(mode="after") # type: ignore[arg-type] - def check_src_trgt_different(cls, model: "Edge") -> "Edge": # noqa: N805 - """Ensure source is different from target""" - if model.source == model.target: - msg = "source and target must be different nodes" - raise ValueError(msg) - return model - - -#------------------------------------------------------------- -# Definition of the Graph structure representing -# the topogy of the system defined for the simulation -#------------------------------------------------------------- - -class TopologyGraph(BaseModel): - """ - data collection for the whole graph representing - the full system - """ - - nodes: TopologyNodes - edges: list[Edge] - - @model_validator(mode="after") # type: ignore[arg-type] - def unique_ids( - cls, # noqa: N805 - model: "TopologyGraph", - ) -> "TopologyGraph": - """Check that all id are unique""" - counter = Counter(edge.id for edge in model.edges) - duplicate = [edge_id for edge_id, value in counter.items() if value > 1] - if duplicate: - msg = f"There are multiple edges with the following ids {duplicate}" - raise ValueError(msg) - return model - - - @model_validator(mode="after") # type: ignore[arg-type] - def edge_refs_valid( - cls, # noqa: N805 - model: "TopologyGraph", - ) -> "TopologyGraph": - """ - Validate that the graph is self-consistent. - - * All targets must be nodes declared in ``m.nodes``. - * External IDs are allowed as sources (entry points, generator) but - they must never appear as a target anywhere else. - """ - # ------------------------------------------------------------------ - # 1. Collect declared node IDs (servers, client, optional LB) - # ------------------------------------------------------------------ - node_ids: set[str] = {srv.id for srv in model.nodes.servers} - node_ids.add(model.nodes.client.id) - if model.nodes.load_balancer is not None: - node_ids.add(model.nodes.load_balancer.id) - - # ------------------------------------------------------------------ - # 2. Scan every edge once - # ------------------------------------------------------------------ - external_sources: set[str] = set() - - for edge in model.edges: - # ── Rule 1: target must be a declared node - if edge.target not in node_ids: - msg = ( - f"Edge {edge.source}->{edge.target} references " - f"unknown target node '{edge.target}'." - ) - raise ValueError(msg) - - # Collect any source that is not a declared node - if edge.source not in node_ids: - external_sources.add(edge.source) - - # ------------------------------------------------------------------ - # 3. Ensure external sources never appear as targets elsewhere - # ------------------------------------------------------------------ - forbidden_targets = external_sources & {e.target for e in model.edges} - if forbidden_targets: - msg = ( - "External IDs cannot be used as targets as well:" - f"{sorted(forbidden_targets)}" - ) - raise ValueError(msg) - - return model - - @model_validator(mode="after") # type: ignore[arg-type] - def valid_load_balancer(cls, model: "TopologyGraph") -> "TopologyGraph": # noqa: N805 - """ - Check the validity of the load balancer: first we check - if is present in the simulation, second we check if the LB list - is a proper subset of the server sets of ids, then we check if - edge from LB to the servers are well defined - """ - lb = model.nodes.load_balancer - if lb is None: - return model - - server_ids = {s.id for s in model.nodes.servers} - - # 1) LB list ⊆ server_ids - missing = lb.server_covered - server_ids - if missing: - - msg = (f"Load balancer '{lb.id}'" - f"references unknown servers: {sorted(missing)}") - raise ValueError(msg) - - # edge are well defined - targets_from_lb = {e.target for e in model.edges if e.source == lb.id} - not_linked = lb.server_covered - targets_from_lb - if not_linked: - msg = ( - f"Servers {sorted(not_linked)} are covered by LB '{lb.id}' " - "but have no outgoing edge from it." - ) - - raise ValueError(msg) - - return model - - - @model_validator(mode="after") # type: ignore[arg-type] - def no_fanout_except_lb(cls, model: "TopologyGraph") -> "TopologyGraph": # noqa: N805 - """Ensure only the LB (declared node) can have multiple outgoing edges.""" - lb_id = model.nodes.load_balancer.id if model.nodes.load_balancer else None - - # let us consider only nodes declared in the topology - node_ids: set[str] = {server.id for server in model.nodes.servers} - node_ids.add(model.nodes.client.id) - if lb_id: - node_ids.add(lb_id) - - counts: dict[str, int] = {} - for edge in model.edges: - if edge.source not in node_ids: - continue - counts[edge.source] = counts.get(edge.source, 0) + 1 - - offenders = [src for src, c in counts.items() if c > 1 and src != lb_id] - if offenders: - msg = ( - "Only the load balancer can have multiple outgoing edges. " - f"Offending sources: {offenders}" - ) - raise ValueError(msg) - - return model diff --git a/src/asyncflow/schemas/topology/__init__.py b/src/asyncflow/schemas/topology/__init__.py new file mode 100644 index 0000000..5e20391 --- /dev/null +++ b/src/asyncflow/schemas/topology/__init__.py @@ -0,0 +1 @@ +"""Schemas and helpers for the system topology (nodes, edges, graph).""" diff --git a/src/asyncflow/schemas/topology/edges.py b/src/asyncflow/schemas/topology/edges.py new file mode 100644 index 0000000..6e3d03b --- /dev/null +++ b/src/asyncflow/schemas/topology/edges.py @@ -0,0 +1,99 @@ +""" +Define the property of the edges of the system representing +links between different nodes +""" + +from pydantic import ( + BaseModel, + Field, + field_validator, + model_validator, +) +from pydantic_core.core_schema import ValidationInfo + +from asyncflow.config.constants import ( + NetworkParameters, + SystemEdges, +) +from asyncflow.schemas.common.random_variables import RVConfig + +#------------------------------------------------------------- +# Definition of the edges structure for the graph representing +# the topoogy of the system defined for the simulation +#------------------------------------------------------------- + +class Edge(BaseModel): + """ + A directed connection in the topology graph. + + Attributes + ---------- + source : str + Identifier of the source node (where the request comes from). + target : str + Identifier of the destination node (where the request goes to). + latency : RVConfig + Random-variable configuration for network latency on this link. + probability : float + Probability of taking this edge when there are multiple outgoing links. + Must be in [0.0, 1.0]. Defaults to 1.0 (always taken). + edge_type : SystemEdges + Category of the link (e.g. network, queue, stream). + + """ + + id: str + source: str + target: str + latency: RVConfig + edge_type: SystemEdges = SystemEdges.NETWORK_CONNECTION + dropout_rate: float = Field( + NetworkParameters.DROPOUT_RATE, + ge = NetworkParameters.MIN_DROPOUT_RATE, + le = NetworkParameters.MAX_DROPOUT_RATE, + description=( + "for each nodes representing a network we define" + "a probability to drop the request" + ), + ) + + # The idea to put here the control about variance and mean about the edges + # latencies and not in RVConfig is to provide a better error handling + # providing a direct indication of the edge with the error + # The idea to put here the control about variance and mean about the edges + # latencies and not in RVConfig is to provide a better error handling + # providing a direct indication of the edge with the error + @field_validator("latency", mode="after") + def ensure_latency_is_non_negative( + cls, # noqa: N805 + v: RVConfig, + info: ValidationInfo, + ) -> RVConfig: + """Ensures that the latency's mean and variance are positive.""" + mean = v.mean + variance = v.variance + + # We can get the edge ID from the validation context for a better error message + edge_id = info.data.get("id", "unknown") + + if mean <= 0: + msg = f"The mean latency of the edge '{edge_id}' must be positive" + raise ValueError(msg) + if variance is not None and variance < 0: # Variance can be zero + msg = ( + f"The variance of the latency of the edge {edge_id}" + "must be non negative" + ) + raise ValueError(msg) + return v + + + @model_validator(mode="after") # type: ignore[arg-type] + def check_src_trgt_different(cls, model: "Edge") -> "Edge": # noqa: N805 + """Ensure source is different from target""" + if model.source == model.target: + msg = "source and target must be different nodes" + raise ValueError(msg) + return model + + diff --git a/src/asyncflow/schemas/system_topology/endpoint.py b/src/asyncflow/schemas/topology/endpoint.py similarity index 100% rename from src/asyncflow/schemas/system_topology/endpoint.py rename to src/asyncflow/schemas/topology/endpoint.py diff --git a/src/asyncflow/schemas/topology/graph.py b/src/asyncflow/schemas/topology/graph.py new file mode 100644 index 0000000..91cf857 --- /dev/null +++ b/src/asyncflow/schemas/topology/graph.py @@ -0,0 +1,159 @@ +""" +Define the topology of the system as a directed graph +where nodes represents macro structure (server, client ecc ecc) +and edges how these strcutures are connected and the network +latency necessary for the requests generated to move from +one structure to another +""" + +from collections import Counter + +from pydantic import ( + BaseModel, + model_validator, +) + +from asyncflow.schemas.topology.edges import Edge +from asyncflow.schemas.topology.nodes import TopologyNodes + +#------------------------------------------------------------- +# Definition of the Graph structure representing +# the topogy of the system defined for the simulation +#------------------------------------------------------------- + +class TopologyGraph(BaseModel): + """ + data collection for the whole graph representing + the full system + """ + + nodes: TopologyNodes + edges: list[Edge] + + @model_validator(mode="after") # type: ignore[arg-type] + def unique_ids( + cls, # noqa: N805 + model: "TopologyGraph", + ) -> "TopologyGraph": + """Check that all id are unique""" + counter = Counter(edge.id for edge in model.edges) + duplicate = [edge_id for edge_id, value in counter.items() if value > 1] + if duplicate: + msg = f"There are multiple edges with the following ids {duplicate}" + raise ValueError(msg) + return model + + + @model_validator(mode="after") # type: ignore[arg-type] + def edge_refs_valid( + cls, # noqa: N805 + model: "TopologyGraph", + ) -> "TopologyGraph": + """ + Validate that the graph is self-consistent. + + * All targets must be nodes declared in ``m.nodes``. + * External IDs are allowed as sources (entry points, generator) but + they must never appear as a target anywhere else. + """ + # ------------------------------------------------------------------ + # 1. Collect declared node IDs (servers, client, optional LB) + # ------------------------------------------------------------------ + node_ids: set[str] = {srv.id for srv in model.nodes.servers} + node_ids.add(model.nodes.client.id) + if model.nodes.load_balancer is not None: + node_ids.add(model.nodes.load_balancer.id) + + # ------------------------------------------------------------------ + # 2. Scan every edge once + # ------------------------------------------------------------------ + external_sources: set[str] = set() + + for edge in model.edges: + # ── Rule 1: target must be a declared node + if edge.target not in node_ids: + msg = ( + f"Edge {edge.source}->{edge.target} references " + f"unknown target node '{edge.target}'." + ) + raise ValueError(msg) + + # Collect any source that is not a declared node + if edge.source not in node_ids: + external_sources.add(edge.source) + + # ------------------------------------------------------------------ + # 3. Ensure external sources never appear as targets elsewhere + # ------------------------------------------------------------------ + forbidden_targets = external_sources & {e.target for e in model.edges} + if forbidden_targets: + msg = ( + "External IDs cannot be used as targets as well:" + f"{sorted(forbidden_targets)}" + ) + raise ValueError(msg) + + return model + + @model_validator(mode="after") # type: ignore[arg-type] + def valid_load_balancer(cls, model: "TopologyGraph") -> "TopologyGraph": # noqa: N805 + """ + Check the validity of the load balancer: first we check + if is present in the simulation, second we check if the LB list + is a proper subset of the server sets of ids, then we check if + edge from LB to the servers are well defined + """ + lb = model.nodes.load_balancer + if lb is None: + return model + + server_ids = {s.id for s in model.nodes.servers} + + # 1) LB list ⊆ server_ids + missing = lb.server_covered - server_ids + if missing: + + msg = (f"Load balancer '{lb.id}'" + f"references unknown servers: {sorted(missing)}") + raise ValueError(msg) + + # edge are well defined + targets_from_lb = {e.target for e in model.edges if e.source == lb.id} + not_linked = lb.server_covered - targets_from_lb + if not_linked: + msg = ( + f"Servers {sorted(not_linked)} are covered by LB '{lb.id}' " + "but have no outgoing edge from it." + ) + + raise ValueError(msg) + + return model + + + @model_validator(mode="after") # type: ignore[arg-type] + def no_fanout_except_lb(cls, model: "TopologyGraph") -> "TopologyGraph": # noqa: N805 + """Ensure only the LB (declared node) can have multiple outgoing edges.""" + lb_id = model.nodes.load_balancer.id if model.nodes.load_balancer else None + + # let us consider only nodes declared in the topology + node_ids: set[str] = {server.id for server in model.nodes.servers} + node_ids.add(model.nodes.client.id) + if lb_id: + node_ids.add(lb_id) + + counts: dict[str, int] = {} + for edge in model.edges: + if edge.source not in node_ids: + continue + counts[edge.source] = counts.get(edge.source, 0) + 1 + + offenders = [src for src, c in counts.items() if c > 1 and src != lb_id] + if offenders: + msg = ( + "Only the load balancer can have multiple outgoing edges. " + f"Offending sources: {offenders}" + ) + raise ValueError(msg) + + return model diff --git a/src/asyncflow/schemas/topology/nodes.py b/src/asyncflow/schemas/topology/nodes.py new file mode 100644 index 0000000..d742421 --- /dev/null +++ b/src/asyncflow/schemas/topology/nodes.py @@ -0,0 +1,164 @@ +""" +Define the pydantic schemas of the nodes you are allowed +to define in the topology of the system you would like to +simulate +""" + +from collections import Counter + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + PositiveInt, + field_validator, + model_validator, +) + +from asyncflow.config.constants import ( + LbAlgorithmsName, + ServerResourcesDefaults, + SystemNodes, +) +from asyncflow.schemas.topology.endpoint import Endpoint + +#------------------------------------------------------------- +# Definition of the nodes structure for the graph representing +# the topoogy of the system defined for the simulation +#------------------------------------------------------------- + +# ------------------------------------------------------------- +# CLIENT +# ------------------------------------------------------------- + +class Client(BaseModel): + """Definition of the client class""" + + id: str + type: SystemNodes = SystemNodes.CLIENT + + @field_validator("type", mode="after") + def ensure_type_is_standard(cls, v: SystemNodes) -> SystemNodes: # noqa: N805 + """Ensure the type of the client is standard""" + if v != SystemNodes.CLIENT: + msg = f"The type should have a standard value: {SystemNodes.CLIENT}" + raise ValueError(msg) + return v + +# ------------------------------------------------------------- +# SERVER RESOURCES +# ------------------------------------------------------------- + +class ServerResources(BaseModel): + """ + Defines the quantifiable resources available on a server node. + Each attribute maps directly to a SimPy resource primitive. + """ + + cpu_cores: PositiveInt = Field( + ServerResourcesDefaults.CPU_CORES, + ge = ServerResourcesDefaults.MINIMUM_CPU_CORES, + description="Number of CPU cores available for processing.", + ) + db_connection_pool: PositiveInt | None = Field( + ServerResourcesDefaults.DB_CONNECTION_POOL, + description="Size of the database connection pool, if applicable.", + ) + + # Risorse modellate come simpy.Container (livello) + ram_mb: PositiveInt = Field( + ServerResourcesDefaults.RAM_MB, + ge = ServerResourcesDefaults.MINIMUM_RAM_MB, + description="Total available RAM in Megabytes.") + + # for the future + # disk_iops_limit: PositiveInt | None = None + # network_throughput_mbps: PositiveInt | None = None + +# ------------------------------------------------------------- +# SERVER +# ------------------------------------------------------------- + +class Server(BaseModel): + """ + definition of the server class: + - id: is the server identifier + - type: is the type of node in the structure + - server resources: is a dictionary to define the resources + of the machine where the server is living + - endpoints: is the list of all endpoints in a server + """ + + id: str + type: SystemNodes = SystemNodes.SERVER + #Later define a valide structure for the keys of server resources + server_resources : ServerResources + endpoints : list[Endpoint] + + @field_validator("type", mode="after") + def ensure_type_is_standard(cls, v: SystemNodes) -> SystemNodes: # noqa: N805 + """Ensure the type of the server is standard""" + if v != SystemNodes.SERVER: + msg = f"The type should have a standard value: {SystemNodes.SERVER}" + raise ValueError(msg) + return v + +class LoadBalancer(BaseModel): + """ + basemodel for the load balancer + - id: unique name associated to the lb + - type: type of the node in the structure + - server_covered: list of server id connected to the lb + """ + + id: str + type: SystemNodes = SystemNodes.LOAD_BALANCER + algorithms: LbAlgorithmsName = LbAlgorithmsName.ROUND_ROBIN + server_covered: set[str] = Field(default_factory=set) + + + + @field_validator("type", mode="after") + def ensure_type_is_standard(cls, v: SystemNodes) -> SystemNodes: # noqa: N805 + """Ensure the type of the server is standard""" + if v != SystemNodes.LOAD_BALANCER: + msg = f"The type should have a standard value: {SystemNodes.LOAD_BALANCER}" + raise ValueError(msg) + return v + + +# ------------------------------------------------------------- +# NODES CLASS WITH ALL POSSIBLE OBJECTS REPRESENTED BY A NODE +# ------------------------------------------------------------- + +class TopologyNodes(BaseModel): + """ + Definition of the nodes class: + - server: represent all servers implemented in the system + - client: is a simple object with just a name representing + the origin of the graph + """ + + servers: list[Server] + client: Client + load_balancer: LoadBalancer | None = None + + @model_validator(mode="after") # type: ignore[arg-type] + def unique_ids( + cls, # noqa: N805 + model: "TopologyNodes", + ) -> "TopologyNodes": + """Check that all id are unique""" + ids = [server.id for server in model.servers] + [model.client.id] + + if model.load_balancer is not None: + ids.append(model.load_balancer.id) + + counter = Counter(ids) + duplicate = [node_id for node_id, value in counter.items() if value > 1] + if duplicate: + msg = f"The following node ids are duplicate {duplicate}" + raise ValueError(msg) + return model + + model_config = ConfigDict(extra="forbid") diff --git a/src/asyncflow/schemas/workload/__init__.py b/src/asyncflow/schemas/workload/__init__.py new file mode 100644 index 0000000..b5efce2 --- /dev/null +++ b/src/asyncflow/schemas/workload/__init__.py @@ -0,0 +1 @@ +"""Schemas for workload generation (traffic generator and distributions).""" diff --git a/src/asyncflow/schemas/rqs_generator_input.py b/src/asyncflow/schemas/workload/generator.py similarity index 95% rename from src/asyncflow/schemas/rqs_generator_input.py rename to src/asyncflow/schemas/workload/generator.py index f0f63a3..a6fbf3b 100644 --- a/src/asyncflow/schemas/rqs_generator_input.py +++ b/src/asyncflow/schemas/workload/generator.py @@ -4,10 +4,10 @@ from pydantic import BaseModel, Field, field_validator from asyncflow.config.constants import Distribution, SystemNodes, TimeDefaults -from asyncflow.schemas.random_variables_config import RVConfig +from asyncflow.schemas.common.random_variables import RVConfig -class RqsGeneratorInput(BaseModel): +class RqsGenerator(BaseModel): """Define the expected variables for the simulation""" id: str diff --git a/tests/conftest.py b/tests/conftest.py index 893cb83..ff416ba 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,16 +12,16 @@ SamplePeriods, TimeDefaults, ) -from asyncflow.schemas.full_simulation_input import SimulationPayload -from asyncflow.schemas.random_variables_config import RVConfig -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput -from asyncflow.schemas.simulation_settings_input import SimulationSettings -from asyncflow.schemas.system_topology.full_system_topology import ( +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.payload import SimulationPayload +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.topology.edges import Edge +from asyncflow.schemas.topology.graph import TopologyGraph +from asyncflow.schemas.topology.nodes import ( Client, - Edge, - TopologyGraph, TopologyNodes, ) +from asyncflow.schemas.workload.generator import RqsGenerator # ============================================================================ # STANDARD CONFIGURATION FOR INPUT VARIABLES @@ -90,12 +90,12 @@ def sim_settings( @pytest.fixture -def rqs_input() -> RqsGeneratorInput: +def rqs_input() -> RqsGenerator: """ One active user issuing two requests per minute—sufficient to exercise the entire request-generator pipeline with minimal overhead. """ - return RqsGeneratorInput( + return RqsGenerator( id="rqs-1", avg_active_users=RVConfig(mean=1.0), avg_request_per_minute_per_user=RVConfig(mean=2.0), @@ -136,7 +136,7 @@ def topology_minimal() -> TopologyGraph: @pytest.fixture def payload_base( - rqs_input: RqsGeneratorInput, + rqs_input: RqsGenerator, sim_settings: SimulationSettings, topology_minimal: TopologyGraph, ) -> SimulationPayload: diff --git a/tests/integration/minimal/conftest.py b/tests/integration/minimal/conftest.py index 812ba5e..f583043 100644 --- a/tests/integration/minimal/conftest.py +++ b/tests/integration/minimal/conftest.py @@ -16,20 +16,20 @@ from asyncflow.config.constants import TimeDefaults from asyncflow.runtime.simulation_runner import SimulationRunner -from asyncflow.schemas.random_variables_config import RVConfig -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.workload.generator import RqsGenerator if TYPE_CHECKING: - from asyncflow.schemas.full_simulation_input import SimulationPayload + from asyncflow.schemas.payload import SimulationPayload # ────────────────────────────────────────────────────────────────────────────── # 0-traffic generator (shadows the project-wide fixture) # ────────────────────────────────────────────────────────────────────────────── @pytest.fixture(scope="session") -def rqs_input() -> RqsGeneratorInput: +def rqs_input() -> RqsGenerator: """A generator that never emits any request.""" - return RqsGeneratorInput( + return RqsGenerator( id="rqs-zero", avg_active_users=RVConfig(mean=0.0), avg_request_per_minute_per_user=RVConfig(mean=0.0), diff --git a/tests/integration/minimal/test_minimal.py b/tests/integration/minimal/test_minimal.py index 2a82601..7ae9507 100644 --- a/tests/integration/minimal/test_minimal.py +++ b/tests/integration/minimal/test_minimal.py @@ -22,7 +22,7 @@ from asyncflow.runtime.simulation_runner import SimulationRunner if TYPE_CHECKING: - from asyncflow.schemas.full_simulation_input import SimulationPayload + from asyncflow.schemas.payload import SimulationPayload # --------------------------------------------------------------------------- # diff --git a/tests/integration/payload/test_payload_invalid.py b/tests/integration/payload/test_payload_invalid.py index fb700b4..8cd5226 100644 --- a/tests/integration/payload/test_payload_invalid.py +++ b/tests/integration/payload/test_payload_invalid.py @@ -6,7 +6,7 @@ import yaml from pydantic import ValidationError -from asyncflow.schemas.full_simulation_input import SimulationPayload +from asyncflow.schemas.payload import SimulationPayload DATA_DIR = Path(__file__).parent / "data" / "invalid" YMLS = sorted(DATA_DIR.glob("*.yml")) diff --git a/tests/unit/metrics/test_analyzer.py b/tests/unit/metrics/test_analyzer.py index eaae45d..365cb1c 100644 --- a/tests/unit/metrics/test_analyzer.py +++ b/tests/unit/metrics/test_analyzer.py @@ -14,7 +14,7 @@ from asyncflow.runtime.actors.client import ClientRuntime from asyncflow.runtime.actors.edge import EdgeRuntime from asyncflow.runtime.actors.server import ServerRuntime - from asyncflow.schemas.simulation_settings_input import SimulationSettings + from asyncflow.schemas.settings.simulation import SimulationSettings # ---------------------------------------------------------------------- # diff --git a/tests/unit/pybuilder/test_input_builder.py b/tests/unit/pybuilder/test_input_builder.py index 3ee710c..587d5f7 100644 --- a/tests/unit/pybuilder/test_input_builder.py +++ b/tests/unit/pybuilder/test_input_builder.py @@ -14,19 +14,20 @@ import pytest from asyncflow.pybuilder.input_builder import AsyncFlow -from asyncflow.schemas.full_simulation_input import SimulationPayload -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput -from asyncflow.schemas.simulation_settings_input import SimulationSettings -from asyncflow.schemas.system_topology.endpoint import Endpoint -from asyncflow.schemas.system_topology.full_system_topology import Client, Edge, Server +from asyncflow.schemas.payload import SimulationPayload +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.topology.edges import Edge +from asyncflow.schemas.topology.endpoint import Endpoint +from asyncflow.schemas.topology.nodes import Client, Server +from asyncflow.schemas.workload.generator import RqsGenerator # --------------------------------------------------------------------------- # # Helpers: build minimal, valid components # # --------------------------------------------------------------------------- # -def make_generator() -> RqsGeneratorInput: +def make_generator() -> RqsGenerator: """Return a minimal valid request generator.""" - return RqsGeneratorInput( + return RqsGenerator( id="rqs-1", avg_active_users={"mean": 10}, avg_request_per_minute_per_user={"mean": 30}, @@ -244,7 +245,7 @@ def test_build_without_settings_raises() -> None: # Negative cases: type enforcement in add_* methods # # --------------------------------------------------------------------------- # def test_add_generator_rejects_wrong_type() -> None: - """`add_generator` rejects non-RqsGeneratorInput instances.""" + """`add_generator` rejects non-RqsGenerator instances.""" flow = AsyncFlow() with pytest.raises(TypeError): flow.add_generator("not-a-generator") # type: ignore[arg-type] diff --git a/tests/unit/resources/test_registry.py b/tests/unit/resources/test_registry.py index 34154db..6581ae0 100644 --- a/tests/unit/resources/test_registry.py +++ b/tests/unit/resources/test_registry.py @@ -7,12 +7,12 @@ from asyncflow.config.constants import ServerResourceName from asyncflow.resources.registry import ResourcesRuntime -from asyncflow.schemas.system_topology.endpoint import Endpoint -from asyncflow.schemas.system_topology.full_system_topology import ( +from asyncflow.schemas.topology.endpoint import Endpoint +from asyncflow.schemas.topology.graph import TopologyGraph +from asyncflow.schemas.topology.nodes import ( Client, Server, ServerResources, - TopologyGraph, TopologyNodes, ) diff --git a/tests/unit/resources/test_server_containers.py b/tests/unit/resources/test_server_containers.py index 3772528..b7a8243 100644 --- a/tests/unit/resources/test_server_containers.py +++ b/tests/unit/resources/test_server_containers.py @@ -4,7 +4,7 @@ from asyncflow.config.constants import ServerResourceName from asyncflow.resources.server_containers import build_containers -from asyncflow.schemas.system_topology.full_system_topology import ServerResources +from asyncflow.schemas.topology.nodes import ServerResources def test_containers_start_full() -> None: diff --git a/tests/unit/runtime/actors/test_client.py b/tests/unit/runtime/actors/test_client.py index 9188d64..d78c848 100644 --- a/tests/unit/runtime/actors/test_client.py +++ b/tests/unit/runtime/actors/test_client.py @@ -7,9 +7,7 @@ from asyncflow.config.constants import SystemEdges, SystemNodes from asyncflow.runtime.actors.client import ClientRuntime from asyncflow.runtime.rqs_state import RequestState -from asyncflow.schemas.system_topology.full_system_topology import ( - Client, -) +from asyncflow.schemas.topology.nodes import Client # --------------------------------------------------------------------------- # # Dummy edge (no real network) # diff --git a/tests/unit/runtime/actors/test_edge.py b/tests/unit/runtime/actors/test_edge.py index e180bec..1800a12 100644 --- a/tests/unit/runtime/actors/test_edge.py +++ b/tests/unit/runtime/actors/test_edge.py @@ -14,13 +14,13 @@ from asyncflow.config.constants import SampledMetricName, SystemEdges, SystemNodes from asyncflow.runtime.actors.edge import EdgeRuntime from asyncflow.runtime.rqs_state import RequestState -from asyncflow.schemas.random_variables_config import RVConfig -from asyncflow.schemas.system_topology.full_system_topology import Edge +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.topology.edges import Edge if TYPE_CHECKING: import numpy as np - from asyncflow.schemas.simulation_settings_input import SimulationSettings + from asyncflow.schemas.settings.simulation import SimulationSettings # --------------------------------------------------------------------------- # diff --git a/tests/unit/runtime/actors/test_load_balancer.py b/tests/unit/runtime/actors/test_load_balancer.py index 41902e0..1905543 100644 --- a/tests/unit/runtime/actors/test_load_balancer.py +++ b/tests/unit/runtime/actors/test_load_balancer.py @@ -9,7 +9,7 @@ from asyncflow.config.constants import LbAlgorithmsName, SystemNodes from asyncflow.runtime.actors.load_balancer import LoadBalancerRuntime -from asyncflow.schemas.system_topology.full_system_topology import LoadBalancer +from asyncflow.schemas.topology.nodes import LoadBalancer if TYPE_CHECKING: from asyncflow.runtime.actors.edge import EdgeRuntime diff --git a/tests/unit/runtime/actors/test_rqs_generator.py b/tests/unit/runtime/actors/test_rqs_generator.py index 7130306..08e8f88 100644 --- a/tests/unit/runtime/actors/test_rqs_generator.py +++ b/tests/unit/runtime/actors/test_rqs_generator.py @@ -17,8 +17,8 @@ from asyncflow.runtime.actors.edge import EdgeRuntime from asyncflow.runtime.rqs_state import RequestState - from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput - from asyncflow.schemas.simulation_settings_input import SimulationSettings + from asyncflow.schemas.settings.simulation import SimulationSettings + from asyncflow.schemas.workload.generator import RqsGenerator import importlib @@ -42,7 +42,7 @@ def transport(self, state: RequestState) -> None: def _make_runtime( env: simpy.Environment, edge: DummyEdgeRuntime, - rqs_input: RqsGeneratorInput, + rqs_input: RqsGenerator, sim_settings: SimulationSettings, *, seed: int = 0, @@ -67,7 +67,7 @@ def _make_runtime( def test_dispatcher_selects_poisson_poisson( monkeypatch: pytest.MonkeyPatch, - rqs_input: RqsGeneratorInput, + rqs_input: RqsGenerator, sim_settings: SimulationSettings, ) -> None: """Default (Poisson) distribution must invoke *poisson_poisson_sampling*.""" @@ -93,7 +93,7 @@ def _fake_pp(*args: object, **kwargs: object) -> Iterator[float]: def test_dispatcher_selects_gaussian_poisson( monkeypatch: pytest.MonkeyPatch, - rqs_input: RqsGeneratorInput, + rqs_input: RqsGenerator, sim_settings: SimulationSettings, ) -> None: """Normal distribution must invoke *gaussian_poisson_sampling*.""" @@ -124,7 +124,7 @@ def _fake_gp(*args: object, **kwargs: object) -> Iterator[float]: def test_event_arrival_generates_expected_number_of_requests( monkeypatch: pytest.MonkeyPatch, - rqs_input: RqsGeneratorInput, + rqs_input: RqsGenerator, sim_settings: SimulationSettings, ) -> None: """Given a deterministic gap list, exactly that many requests are sent.""" diff --git a/tests/unit/runtime/actors/test_server.py b/tests/unit/runtime/actors/test_server.py index 7085e12..4c915ac 100644 --- a/tests/unit/runtime/actors/test_server.py +++ b/tests/unit/runtime/actors/test_server.py @@ -32,9 +32,9 @@ from asyncflow.resources.server_containers import build_containers from asyncflow.runtime.actors.server import ServerRuntime from asyncflow.runtime.rqs_state import RequestState -from asyncflow.schemas.simulation_settings_input import SimulationSettings -from asyncflow.schemas.system_topology.endpoint import Endpoint, Step -from asyncflow.schemas.system_topology.full_system_topology import ( +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.topology.endpoint import Endpoint, Step +from asyncflow.schemas.topology.nodes import ( Server, ServerResources, ) diff --git a/tests/unit/runtime/test_simulation_runner.py b/tests/unit/runtime/test_simulation_runner.py index c0f6b2e..e3b4da7 100644 --- a/tests/unit/runtime/test_simulation_runner.py +++ b/tests/unit/runtime/test_simulation_runner.py @@ -23,7 +23,7 @@ from asyncflow.runtime.actors.client import ClientRuntime from asyncflow.runtime.actors.rqs_generator import RqsGeneratorRuntime - from asyncflow.schemas.full_simulation_input import SimulationPayload + from asyncflow.schemas.payload import SimulationPayload # --------------------------------------------------------------------------- # diff --git a/tests/unit/samplers/test_gaussian_poisson.py b/tests/unit/samplers/test_gaussian_poisson.py index 4b3ed80..0818fcc 100644 --- a/tests/unit/samplers/test_gaussian_poisson.py +++ b/tests/unit/samplers/test_gaussian_poisson.py @@ -13,12 +13,12 @@ from asyncflow.samplers.gaussian_poisson import ( gaussian_poisson_sampling, ) -from asyncflow.schemas.random_variables_config import RVConfig -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.workload.generator import RqsGenerator if TYPE_CHECKING: - from asyncflow.schemas.simulation_settings_input import SimulationSettings + from asyncflow.schemas.settings.simulation import SimulationSettings # --------------------------------------------------------------------------- # FIXTURES @@ -26,9 +26,9 @@ @pytest.fixture -def rqs_cfg() -> RqsGeneratorInput: - """Minimal, valid RqsGeneratorInput for Gaussian-Poisson tests.""" - return RqsGeneratorInput( +def rqs_cfg() -> RqsGenerator: + """Minimal, valid RqsGenerator for Gaussian-Poisson tests.""" + return RqsGenerator( id= "gen-1", avg_active_users=RVConfig( mean=10.0, @@ -47,7 +47,7 @@ def rqs_cfg() -> RqsGeneratorInput: def test_returns_generator_type( - rqs_cfg: RqsGeneratorInput, + rqs_cfg: RqsGenerator, sim_settings: SimulationSettings, rng: Generator, ) -> None: @@ -57,7 +57,7 @@ def test_returns_generator_type( def test_generates_positive_gaps( - rqs_cfg: RqsGeneratorInput, + rqs_cfg: RqsGenerator, sim_settings: SimulationSettings, ) -> None: """ @@ -83,7 +83,7 @@ def test_generates_positive_gaps( def test_zero_users_produces_no_events( monkeypatch: pytest.MonkeyPatch, - rqs_cfg: RqsGeneratorInput, + rqs_cfg: RqsGenerator, sim_settings: SimulationSettings, ) -> None: """ diff --git a/tests/unit/samplers/test_poisson_poisson.py b/tests/unit/samplers/test_poisson_poisson.py index fde7d04..477ed34 100644 --- a/tests/unit/samplers/test_poisson_poisson.py +++ b/tests/unit/samplers/test_poisson_poisson.py @@ -12,18 +12,18 @@ from asyncflow.config.constants import TimeDefaults from asyncflow.samplers.poisson_poisson import poisson_poisson_sampling -from asyncflow.schemas.random_variables_config import RVConfig -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.workload.generator import RqsGenerator if TYPE_CHECKING: - from asyncflow.schemas.simulation_settings_input import SimulationSettings + from asyncflow.schemas.settings.simulation import SimulationSettings @pytest.fixture -def rqs_cfg() -> RqsGeneratorInput: - """Return a minimal, valid RqsGeneratorInput for the sampler tests.""" - return RqsGeneratorInput( +def rqs_cfg() -> RqsGenerator: + """Return a minimal, valid RqsGenerator for the sampler tests.""" + return RqsGenerator( id="gen-1", avg_active_users={"mean": 1.0, "distribution": "poisson"}, avg_request_per_minute_per_user={"mean": 60.0, "distribution": "poisson"}, @@ -36,7 +36,7 @@ def rqs_cfg() -> RqsGeneratorInput: def test_sampler_returns_generator( - rqs_cfg: RqsGeneratorInput, + rqs_cfg: RqsGenerator, sim_settings: SimulationSettings, rng: Generator, ) -> None: @@ -46,7 +46,7 @@ def test_sampler_returns_generator( def test_all_gaps_are_positive( - rqs_cfg: RqsGeneratorInput, + rqs_cfg: RqsGenerator, sim_settings: SimulationSettings, ) -> None: """Every yielded gap must be strictly positive.""" @@ -65,7 +65,7 @@ def test_all_gaps_are_positive( def test_sampler_is_reproducible_with_fixed_seed( - rqs_cfg: RqsGeneratorInput, + rqs_cfg: RqsGenerator, sim_settings: SimulationSettings, ) -> None: """Same RNG seed must produce identical first N gaps.""" @@ -96,7 +96,7 @@ def test_zero_users_produces_no_events( sim_settings: SimulationSettings, ) -> None: """If the mean user count is zero the generator must yield no events.""" - cfg_zero = RqsGeneratorInput( + cfg_zero = RqsGenerator( id="gen-1", avg_active_users=RVConfig(mean=0.0, distribution="poisson"), avg_request_per_minute_per_user=RVConfig(mean=60.0, distribution="poisson"), @@ -115,7 +115,7 @@ def test_zero_users_produces_no_events( def test_cumulative_time_never_exceeds_horizon( - rqs_cfg: RqsGeneratorInput, + rqs_cfg: RqsGenerator, sim_settings: SimulationSettings, ) -> None: """Sum of gaps must stay below the simulation horizon.""" diff --git a/tests/unit/samplers/test_sampler_helper.py b/tests/unit/samplers/test_sampler_helper.py index f6b4241..349a5fd 100644 --- a/tests/unit/samplers/test_sampler_helper.py +++ b/tests/unit/samplers/test_sampler_helper.py @@ -17,7 +17,7 @@ truncated_gaussian_generator, uniform_variable_generator, ) -from asyncflow.schemas.random_variables_config import RVConfig +from asyncflow.schemas.common.random_variables import RVConfig # --------------------------------------------------------------------------- # # Dummy RNG # diff --git a/tests/unit/schemas/test_endpoint_input.py b/tests/unit/schemas/test_endpoint.py similarity index 98% rename from tests/unit/schemas/test_endpoint_input.py rename to tests/unit/schemas/test_endpoint.py index 3813dd6..080f55a 100644 --- a/tests/unit/schemas/test_endpoint_input.py +++ b/tests/unit/schemas/test_endpoint.py @@ -11,7 +11,7 @@ EndpointStepRAM, StepOperation, ) -from asyncflow.schemas.system_topology.endpoint import Endpoint, Step +from asyncflow.schemas.topology.endpoint import Endpoint, Step # --------------------------------------------------------------------------- # diff --git a/tests/unit/schemas/test_requests_generator_input.py b/tests/unit/schemas/test_generator.py similarity index 92% rename from tests/unit/schemas/test_requests_generator_input.py rename to tests/unit/schemas/test_generator.py index 66ad037..6992611 100644 --- a/tests/unit/schemas/test_requests_generator_input.py +++ b/tests/unit/schemas/test_generator.py @@ -1,13 +1,13 @@ -"""Validation tests for RVConfig, RqsGeneratorInput and SimulationSettings.""" +"""Validation tests for RVConfig, RqsGenerator and SimulationSettings.""" from __future__ import annotations import pytest from pydantic import ValidationError from asyncflow.config.constants import Distribution, TimeDefaults -from asyncflow.schemas.random_variables_config import RVConfig -from asyncflow.schemas.rqs_generator_input import RqsGeneratorInput -from asyncflow.schemas.simulation_settings_input import SimulationSettings +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.settings.simulation import SimulationSettings +from asyncflow.schemas.workload.generator import RqsGenerator # --------------------------------------------------------------------------- # # RVCONFIG # @@ -82,7 +82,7 @@ def test_invalid_distribution_literal_raises() -> None: # --------------------------------------------------------------------------- # -# RQSGENERATORINPUT - USER_SAMPLING_WINDOW & DISTRIBUTION CONSTRAINTS # +# RqsGenerator - USER_SAMPLING_WINDOW & DISTRIBUTION CONSTRAINTS # # --------------------------------------------------------------------------- # @@ -98,7 +98,7 @@ def _valid_normal_cfg(mean: float = 1.0) -> dict[str, float | str]: def test_default_user_sampling_window() -> None: """If user_sampling_window is missing it defaults to the constant.""" - inp = RqsGeneratorInput( + inp = RqsGenerator( id="rqs-1", avg_active_users=_valid_poisson_cfg(), avg_request_per_minute_per_user=_valid_poisson_cfg(), @@ -108,7 +108,7 @@ def test_default_user_sampling_window() -> None: def test_explicit_user_sampling_window_kept() -> None: """An explicit user_sampling_window is preserved.""" - inp = RqsGeneratorInput( + inp = RqsGenerator( id="rqs-1", avg_active_users=_valid_poisson_cfg(), avg_request_per_minute_per_user=_valid_poisson_cfg(), @@ -120,7 +120,7 @@ def test_explicit_user_sampling_window_kept() -> None: def test_user_sampling_window_not_int_raises() -> None: """A non-integer user_sampling_window raises ValidationError.""" with pytest.raises(ValidationError): - RqsGeneratorInput( + RqsGenerator( id="rqs-1", avg_active_users=_valid_poisson_cfg(), avg_request_per_minute_per_user=_valid_poisson_cfg(), @@ -132,7 +132,7 @@ def test_user_sampling_window_above_max_raises() -> None: """user_sampling_window above the max constant raises ValidationError.""" too_large = TimeDefaults.MAX_USER_SAMPLING_WINDOW + 1 with pytest.raises(ValidationError): - RqsGeneratorInput( + RqsGenerator( id="rqs-1", avg_active_users=_valid_poisson_cfg(), avg_request_per_minute_per_user=_valid_poisson_cfg(), @@ -143,7 +143,7 @@ def test_user_sampling_window_above_max_raises() -> None: def test_avg_request_must_be_poisson() -> None: """avg_request_per_minute_per_user must be Poisson; Normal raises.""" with pytest.raises(ValidationError): - RqsGeneratorInput( + RqsGenerator( id="rqs-1", avg_active_users=_valid_poisson_cfg(), avg_request_per_minute_per_user=_valid_normal_cfg(), @@ -154,7 +154,7 @@ def test_avg_active_users_invalid_distribution_raises() -> None: """avg_active_users cannot be Exponential; only Poisson or Normal allowed.""" bad_cfg = {"mean": 1.0, "distribution": Distribution.EXPONENTIAL} with pytest.raises(ValidationError): - RqsGeneratorInput( + RqsGenerator( id="rqs-1", avg_active_users=bad_cfg, avg_request_per_minute_per_user=_valid_poisson_cfg(), @@ -163,7 +163,7 @@ def test_avg_active_users_invalid_distribution_raises() -> None: def test_valid_poisson_poisson_configuration() -> None: """Poisson-Poisson combo is accepted.""" - cfg = RqsGeneratorInput( + cfg = RqsGenerator( id="rqs-1", avg_active_users=_valid_poisson_cfg(), avg_request_per_minute_per_user=_valid_poisson_cfg(), @@ -177,7 +177,7 @@ def test_valid_poisson_poisson_configuration() -> None: def test_valid_normal_poisson_configuration() -> None: """Normal-Poisson combo is accepted.""" - cfg = RqsGeneratorInput( + cfg = RqsGenerator( id="rqs-1", avg_active_users=_valid_normal_cfg(), avg_request_per_minute_per_user=_valid_poisson_cfg(), diff --git a/tests/unit/schemas/test_full_topology_input.py b/tests/unit/schemas/test_topology.py similarity index 97% rename from tests/unit/schemas/test_full_topology_input.py rename to tests/unit/schemas/test_topology.py index 4e27562..0ef53e0 100644 --- a/tests/unit/schemas/test_full_topology_input.py +++ b/tests/unit/schemas/test_topology.py @@ -13,15 +13,15 @@ SystemEdges, SystemNodes, ) -from asyncflow.schemas.random_variables_config import RVConfig -from asyncflow.schemas.system_topology.endpoint import Endpoint, Step -from asyncflow.schemas.system_topology.full_system_topology import ( +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.topology.edges import Edge +from asyncflow.schemas.topology.endpoint import Endpoint, Step +from asyncflow.schemas.topology.graph import TopologyGraph +from asyncflow.schemas.topology.nodes import ( Client, - Edge, LoadBalancer, Server, ServerResources, - TopologyGraph, TopologyNodes, ) From 92a4c0caabd927b229909d3670ecf19c6a3633c1 Mon Sep 17 00:00:00 2001 From: GioeleB00 Date: Thu, 14 Aug 2025 19:11:34 +0200 Subject: [PATCH 2/2] Defined public api, improved docs --- docs/api/components.md | 295 +++++++++++++++++ docs/api/enums.md | 197 ++++++++++++ docs/api/high-level.md | 299 ++++++++++++++++++ docs/api/settings.md | 200 ++++++++++++ docs/api/workload.md | 197 ++++++++++++ docs/dev-workflow-guide.md | 273 ++++++++++++++++ docs/dev_workflow_guide.md | 256 --------------- docs/fastsim_vision.md | 41 --- docs/{pybuilder.md => guides/builder.md} | 180 ++++------- .../yaml-builder.md} | 63 ++-- docs/index.md | 57 ++++ .../metrics/overview.md} | 0 .../metrics/time-series-architecture.md} | 0 .../runtime-and-resources.md} | 0 .../simulation-input.md} | 0 .../simulation-runner.md} | 0 .../workload-samplers.md} | 0 docs/why-asyncflow.md | 93 ++++++ examples/single_server_builder.png | Bin 0 -> 166241 bytes examples/single_server_pybuilder.py | 18 +- examples/single_server_yml.png | Bin 160670 -> 166693 bytes src/asyncflow/__init__.py | 24 +- .../asyncflow_builder.py} | 2 +- src/asyncflow/components/__init__.py | 26 +- src/asyncflow/config/__init__.py | 1 - src/asyncflow/enums/__init__.py | 17 +- src/asyncflow/resources/__init__.py | 1 - src/asyncflow/runtime/__init__.py | 1 - src/asyncflow/runtime/actors/load_balancer.py | 2 +- .../{helpers => routing}/lb_algorithms.py | 0 src/asyncflow/runtime/actors/rqs_generator.py | 2 +- src/asyncflow/runtime/simulation_runner.py | 2 +- src/asyncflow/samplers/gaussian_poisson.py | 2 +- src/asyncflow/samplers/poisson_poisson.py | 2 +- src/asyncflow/schemas/payload.py | 2 +- src/asyncflow/schemas/settings/__init__.py | 1 - src/asyncflow/schemas/topology/__init__.py | 1 - src/asyncflow/schemas/workload/__init__.py | 1 - .../{generator.py => rqs_generator.py} | 0 src/asyncflow/settings/__init__.py | 6 + src/asyncflow/workload/__init__.py | 7 + tests/conftest.py | 2 +- tests/integration/minimal/conftest.py | 2 +- tests/unit/pybuilder/test_input_builder.py | 4 +- .../unit/runtime/actors/test_rqs_generator.py | 2 +- tests/unit/samplers/test_gaussian_poisson.py | 2 +- tests/unit/samplers/test_poisson_poisson.py | 2 +- tests/unit/schemas/test_generator.py | 2 +- 48 files changed, 1761 insertions(+), 524 deletions(-) create mode 100644 docs/api/components.md create mode 100644 docs/api/enums.md create mode 100644 docs/api/high-level.md create mode 100644 docs/api/settings.md create mode 100644 docs/api/workload.md create mode 100644 docs/dev-workflow-guide.md delete mode 100644 docs/dev_workflow_guide.md delete mode 100644 docs/fastsim_vision.md rename docs/{pybuilder.md => guides/builder.md} (53%) rename docs/{yaml_builder.md => guides/yaml-builder.md} (85%) create mode 100644 docs/index.md rename docs/{asyncflow-docs/metrics_to_measure.md => internals/metrics/overview.md} (100%) rename docs/{asyncflow-docs/time_series_metric_architecture.md => internals/metrics/time-series-architecture.md} (100%) rename docs/{asyncflow-docs/runtime_and_resources.md => internals/runtime-and-resources.md} (100%) rename docs/{asyncflow-docs/simulation_input.md => internals/simulation-input.md} (100%) rename docs/{asyncflow-docs/simulation_runner.md => internals/simulation-runner.md} (100%) rename docs/{asyncflow-docs/requests_generator.md => internals/workload-samplers.md} (100%) create mode 100644 docs/why-asyncflow.md create mode 100644 examples/single_server_builder.png rename src/asyncflow/{pybuilder/input_builder.py => builder/asyncflow_builder.py} (98%) delete mode 100644 src/asyncflow/config/__init__.py delete mode 100644 src/asyncflow/resources/__init__.py delete mode 100644 src/asyncflow/runtime/__init__.py rename src/asyncflow/runtime/actors/{helpers => routing}/lb_algorithms.py (100%) delete mode 100644 src/asyncflow/schemas/settings/__init__.py delete mode 100644 src/asyncflow/schemas/topology/__init__.py delete mode 100644 src/asyncflow/schemas/workload/__init__.py rename src/asyncflow/schemas/workload/{generator.py => rqs_generator.py} (100%) create mode 100644 src/asyncflow/settings/__init__.py create mode 100644 src/asyncflow/workload/__init__.py diff --git a/docs/api/components.md b/docs/api/components.md new file mode 100644 index 0000000..15f97c2 --- /dev/null +++ b/docs/api/components.md @@ -0,0 +1,295 @@ +# AsyncFlow — Public API Reference: `components` + +This page documents the **public topology components** you can import from +`asyncflow.components` to construct a simulation scenario in Python. +These classes are Pydantic models with strict validation and are the +**only pieces you need** to define the *structure* of your system: nodes +(client/servers/LB), endpoints (steps), and network edges. + +> The builder (`AsyncFlow`) will assemble these into the internal graph for you. +> You **do not** need to import internal graph classes. + +--- + +## Imports + +```python +from asyncflow.components import ( + Client, + Server, + ServerResources, + LoadBalancer, + Endpoint, + Edge, +) +# Optional enums (strings are also accepted): +from asyncflow.enums import Distribution +``` + +--- + +## Quick example + +```python +from asyncflow.components import ( + Client, Server, ServerResources, LoadBalancer, Endpoint, Edge +) + +# Nodes +client = Client(id="client-1") + +endpoint = Endpoint( + endpoint_name="/predict", + steps=[ + {"kind": "ram", "step_operation": {"necessary_ram": 64}}, + {"kind": "initial_parsing", "step_operation": {"cpu_time": 0.002}}, + {"kind": "io_wait", "step_operation": {"io_waiting_time": 0.010}}, + ], +) + +server = Server( + id="srv-1", + server_resources=ServerResources(cpu_cores=2, ram_mb=2048), + endpoints=[endpoint], +) + +lb = LoadBalancer(id="lb-1", algorithms="round_robin", server_covered={"srv-1"}) + +# Edges (directed) +edges = [ + Edge( + id="gen-to-client", + source="rqs-1", # external sources allowed (e.g., generator id) + target="client-1", # targets must be declared nodes + latency={"mean": 0.003, "distribution": "exponential"}, + ), + Edge( + id="client-to-lb", + source="client-1", + target="lb-1", + latency={"mean": 0.002, "distribution": "exponential"}, + ), + Edge( + id="lb-to-srv1", + source="lb-1", + target="srv-1", + latency={"mean": 0.002, "distribution": "exponential"}, + ), + Edge( + id="srv1-to-client", + source="srv-1", + target="client-1", + latency={"mean": 0.003, "distribution": "exponential"}, + ), +] +``` + +You can then feed these to the `AsyncFlow` builder (not shown here) along with +workload and settings. + +--- + +## Component reference + +### `Client` + +```python +Client(id: str) +``` + +* Represents the client node. +* `type` is fixed internally to `"client"`. +* **Validation:** any non-standard `type` is rejected (guardrail). + +--- + +### `ServerResources` + +```python +ServerResources( + cpu_cores: int = 1, # ≥ 1 NOW MUST BE FIXED TO ONE + ram_mb: int = 1024, # ≥ 256 + db_connection_pool: int | None = None, +) +``` + +* Server capacity knobs used by the runtime (CPU tokens, RAM reservoir, optional DB pool). +* You may pass a **dict** instead of `ServerResources`; Pydantic will coerce it. + +**Bounds & defaults** + +* `cpu_cores ≥ 1` +* `ram_mb ≥ 256` +* `db_connection_pool` optional + +--- + +### `Endpoint` + +```python +Endpoint( + endpoint_name: str, # normalized to lowercase + steps: list[dict], # or Pydantic Step objects (dict is simpler) +) +``` + +Each step is a dict with **exactly one** operation: + +```python +{"kind": , "step_operation": { : }} +``` + +**Valid step kinds and operation keys** + +| Kind (enum string) | Operation dict (exactly 1 key) | Units / constraints | | +| --------------------- | -------------------------------- | ------------------- | ------- | +| `initial_parsing` | `{ "cpu_time": }` | seconds, > 0 | | +| `cpu_bound_operation` | `{ "cpu_time": }` | seconds, > 0 | | +| `ram` | \`{ "necessary\_ram": \ }\` | MB, > 0 | +| `io_task_spawn` | `{ "io_waiting_time": }` | seconds, > 0 | | +| `io_llm` | `{ "io_waiting_time": }` | seconds, > 0 | | +| `io_wait` | `{ "io_waiting_time": }` | seconds, > 0 | | +| `io_db` | `{ "io_waiting_time": }` | seconds, > 0 | | +| `io_cache` | `{ "io_waiting_time": }` | seconds, > 0 | | + +**Validation** + +* `endpoint_name` is lowercased automatically. +* `step_operation` must have **one and only one** entry. +* The operation **must match** the step kind (CPU ↔ `cpu_time`, RAM ↔ `necessary_ram`, IO ↔ `io_waiting_time`). +* All numeric values must be **strictly positive**. + +--- + +### `Server` + +```python +Server( + id: str, + server_resources: ServerResources | dict, + endpoints: list[Endpoint], +) +``` + +* Represents a server node hosting one or more endpoints. +* `type` is fixed internally to `"server"`. +* **Validation:** any non-standard `type` is rejected. + +--- + +### `LoadBalancer` (optional) + +```python +LoadBalancer( + id: str, + algorithms: Literal["round_robin", "least_connection"] = "round_robin", + server_covered: set[str] = set(), +) +``` + +* Declares a logical load balancer and the set of server IDs it can route to. +* **Graph-level rules** (checked when the payload is built): + + * `server_covered` must be a subset of declared server IDs. + * There must be an **edge from the LB to each covered server** (e.g., `lb-1 → srv-1`). + +--- + +### `Edge` + +```python +Edge( + id: str, + source: str, + target: str, + latency: dict | RVConfig, # recommend dict: {"mean": , "distribution": , "variance": } + edge_type: Literal["network_connection"] = "network_connection", + dropout_rate: float = 0.01, # in [0.0, 1.0] +) +``` + +* Directed link between two nodes. +* **Latency** is a random variable; most users pass a dict: + + * `mean: float` (required) + * `distribution: "poisson" | "normal" | "log_normal" | "exponential" | "uniform"` (default: `"poisson"`) + * `variance: float?` (for `normal`/`log_normal`, defaults to `mean` if omitted) + +**Validation** + +* `mean > 0` +* if provided, `variance ≥ 0` +* `dropout_rate ∈ [0.0, 1.0]` +* `source != target` + +**Graph-level rules** (enforced when the full payload is validated) + +* Every **target** must be a **declared node** (`client`, `server`, or `load_balancer`). +* **External IDs** (e.g., `"rqs-1"`) are allowed **only** as **sources**; they cannot appear as targets. +* **Unique edge IDs**. +* **No fan-out except LB**: only the load balancer is allowed to have multiple outgoing edges among declared nodes. + +--- + +## Type coercion & enums + +* You may pass strings for enums (`kind`, `distribution`, etc.); they will be validated against the allowed values. +* For `ServerResources` and `Edge.latency` you can pass dictionaries; Pydantic will coerce them to typed models. +* If you prefer, you can import and use the enums: + + ```python + from asyncflow.enums import Distribution + Edge(..., latency={"mean": 0.003, "distribution": Distribution.EXPONENTIAL}) + ``` + +--- + +## Best practices & pitfalls + +**Do** + +* Keep IDs unique across nodes of the same category and across edges. +* Ensure LB coverage and LB→server edges are in sync. +* Use small, measurable step values first; iterate once you see where queues and delays form. + +**Don’t** + +* Create multiple outgoing edges from non-LB nodes (graph validator will fail). +* Use zero/negative times or RAM (validators will raise). +* Target external IDs (only sources may be external). + +--- + +## Where these components fit + +You will typically combine these **components** with: + +* **workload** (`RqsGenerator`) from `asyncflow.workload` +* **settings** (`SimulationSettings`) from `asyncflow.settings` +* the **builder** (`AsyncFlow`) and **runner** (`SimulationRunner`) from the root package + +Example (wiring, abbreviated): + +```python +from asyncflow import AsyncFlow, SimulationRunner +from asyncflow.workload import RqsGenerator +from asyncflow.settings import SimulationSettings + +flow = ( + AsyncFlow() + .add_generator(RqsGenerator(...)) + .add_client(client) + .add_servers(server) + .add_edges(*edges) + .add_load_balancer(lb) # optional + .add_simulation_settings(SimulationSettings(...)) +) +payload = flow.build_payload() # validates graph-level rules +SimulationRunner(..., simulation_input=payload).run() +``` + +--- + +With these `components`, you can model any topology supported by AsyncFlow— +cleanly, type-checked, and with **clear, early** validation errors when something +is inconsistent. diff --git a/docs/api/enums.md b/docs/api/enums.md new file mode 100644 index 0000000..09aaeb6 --- /dev/null +++ b/docs/api/enums.md @@ -0,0 +1,197 @@ +# AsyncFlow — Public Enums API + +This page documents the **public, user-facing** enums exported from `asyncflow.enums`. These enums exist to remove “magic strings” from scenario code, offer IDE autocomplete, and make input validation more robust. Using them is optional — all Pydantic models still accept the corresponding string values — but recommended for Python users. + +```python +from asyncflow.enums import ( + Distribution, + LbAlgorithmsName, + SampledMetricName, + EventMetricName, + # advanced (optional, if you define steps in Python) + EndpointStepCPU, EndpointStepIO, EndpointStepRAM, StepOperation, +) +``` + +> **Stability:** Values in these enums form part of the **public input contract**. They are semver-stable: new members may be added in minor releases, existing members won’t be renamed or removed except in a major release. + +--- + +## 1) Distribution + +Enumeration of probability distributions accepted by `RVConfig`. + +* `Distribution.POISSON` → `"poisson"` +* `Distribution.NORMAL` → `"normal"` +* `Distribution.LOG_NORMAL` → `"log_normal"` +* `Distribution.EXPONENTIAL` → `"exponential"` +* `Distribution.UNIFORM` → `"uniform"` + +**Used in:** `RVConfig` (e.g., workload users / rpm, edge latency). + +**Notes & validation:** + +* `mean` is required (coerced to float). +* For `NORMAL` and `LOG_NORMAL`, missing `variance` defaults to `mean`. +* For **edge latency** specifically, `mean > 0` and (if present) `variance ≥ 0`. + +**Example** + +```python +from asyncflow.enums import Distribution +from asyncflow.schemas.common.random_variables import RVConfig + +rv = RVConfig(mean=0.003, distribution=Distribution.EXPONENTIAL) +``` + +--- + +## 2) LbAlgorithmsName + +Load-balancing strategies available to the `LoadBalancer` node. + +* `LbAlgorithmsName.ROUND_ROBIN` → `"round_robin"` +* `LbAlgorithmsName.LEAST_CONNECTIONS` → `"least_connection"` + +**Used in:** `LoadBalancer(algorithms=...)`. + +**Example** + +```python +from asyncflow.enums import LbAlgorithmsName +from asyncflow.schemas.topology.nodes import LoadBalancer + +lb = LoadBalancer(id="lb-1", algorithms=LbAlgorithmsName.ROUND_ROBIN, server_covered={"srv-1", "srv-2"}) +``` + +--- + +## 3) SampledMetricName + +Time-series metrics collected at a fixed cadence (`sample_period_s`). + +* `READY_QUEUE_LEN` → `"ready_queue_len"` +* `EVENT_LOOP_IO_SLEEP` → `"event_loop_io_sleep"` +* `RAM_IN_USE` → `"ram_in_use"` +* `EDGE_CONCURRENT_CONNECTION` → `"edge_concurrent_connection"` + +**Used in:** `SimulationSettings(enabled_sample_metrics=...)`. + +**Example** + +```python +from asyncflow.enums import SampledMetricName +from asyncflow.schemas.settings.simulation import SimulationSettings + +settings = SimulationSettings( + total_simulation_time=300, + sample_period_s=0.01, + enabled_sample_metrics={ + SampledMetricName.READY_QUEUE_LEN, + SampledMetricName.RAM_IN_USE, + }, +) +``` + +--- + +## 4) EventMetricName + +Per-event metrics (not sampled). + +* `RQS_CLOCK` → `"rqs_clock"` +* `LLM_COST` → `"llm_cost"` (reserved for future accounting) + +**Used in:** `SimulationSettings(enabled_event_metrics=...)`. + +**Example** + +```python +from asyncflow.enums import EventMetricName +SimulationSettings(enabled_event_metrics={EventMetricName.RQS_CLOCK}) +``` + +--- + +## 5) (Advanced) Endpoint step enums + +You only need these if you create `Endpoint` steps **programmatically** in Python. In YAML you’ll write strings; both modes are supported. + +### 5.1 EndpointStepCPU + +CPU-bound step kinds: + +* `INITIAL_PARSING` → `"initial_parsing"` +* `CPU_BOUND_OPERATION` → `"cpu_bound_operation"` + +### 5.2 EndpointStepRAM + +RAM step kind: + +* `RAM` → `"ram"` + +### 5.3 EndpointStepIO + +I/O-bound step kinds: + +* `TASK_SPAWN` → `"io_task_spawn"` +* `LLM` → `"io_llm"` +* `WAIT` → `"io_wait"` +* `DB` → `"io_db"` +* `CACHE` → `"io_cache"` + +### 5.4 StepOperation + +Operation keys allowed inside `Step.step_operation`: + +* `CPU_TIME` → `"cpu_time"` (seconds, positive) +* `NECESSARY_RAM` → `"necessary_ram"` (MB, positive) +* `IO_WAITING_TIME` → `"io_waiting_time"` (seconds, positive) + +**Validation rules (enforced by the schema):** + +* Every `Step` must have **exactly one** operation key. +* The operation must **match** the step kind: + + * CPU step → `CPU_TIME` + * RAM step → `NECESSARY_RAM` + * I/O step → `IO_WAITING_TIME` + +**Example** + +```python +from asyncflow.enums import EndpointStepCPU, EndpointStepIO, EndpointStepRAM, StepOperation +from asyncflow.schemas.topology.endpoint import Endpoint + +ep = Endpoint( + endpoint_name="/predict", + steps=[ + { "kind": EndpointStepRAM.RAM, "step_operation": { StepOperation.NECESSARY_RAM: 128 } }, + { "kind": EndpointStepCPU.INITIAL_PARSING, "step_operation": { StepOperation.CPU_TIME: 0.002 } }, + { "kind": EndpointStepIO.DB, "step_operation": { StepOperation.IO_WAITING_TIME: 0.012 } }, + ], +) +``` + +--- + +## Usage patterns & tips + +* **Strings vs Enums:** All models accept both. Enums help with IDE hints and prevent typos; strings keep YAML compact. Mix as you like. +* **Keep it public, not internal:** Only the enums above are considered public and stable. Internals like `SystemNodes`, `SystemEdges`, `ServerResourceName`, etc. are intentionally **not exported** (they may change). +* **Forward compatibility:** New enum members may appear in minor releases (e.g., a new `SampledMetricName`). Your existing configs remain valid; just opt in when you need them. + +--- + +## Quick Reference + +| Enum | Where it’s used | Members (strings) | +| ------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| `Distribution` | `RVConfig` | `poisson`, `normal`, `log_normal`, `exponential`, `uniform` | +| `LbAlgorithmsName` | `LoadBalancer.algorithms` | `round_robin`, `least_connection` | +| `SampledMetricName` | `SimulationSettings.enabled_sample_metrics` | `ready_queue_len`, `event_loop_io_sleep`, `ram_in_use`, `edge_concurrent_connection` | +| `EventMetricName` | `SimulationSettings.enabled_event_metrics` | `rqs_clock`, `llm_cost` | +| `EndpointStep*` | `Endpoint.steps[*].kind` (Python) | CPU: `initial_parsing`, `cpu_bound_operation`; RAM: `ram`; IO: `io_task_spawn`, `io_llm`, `io_wait`, `io_db`, `io_cache` | +| `StepOperation` | `Endpoint.steps[*].step_operation` | `cpu_time`, `necessary_ram`, `io_waiting_time` | + +--- diff --git a/docs/api/high-level.md b/docs/api/high-level.md new file mode 100644 index 0000000..65c3d24 --- /dev/null +++ b/docs/api/high-level.md @@ -0,0 +1,299 @@ +# AsyncFlow — High-Level API (`AsyncFlow`, `SimulationRunner`) + +This page explains how to programmatically **assemble a validated simulation payload** and **run** it, returning metrics and plots through the analyzer. + +* **Builder**: `AsyncFlow` – compose workload, topology, and settings into a single `SimulationPayload`. +* **Runner**: `SimulationRunner` – wire actors, start processes, collect metrics, and return a `ResultsAnalyzer`. + +--- + +## Imports + +```python +# High-level API +from asyncflow import AsyncFlow, SimulationRunner + +# Public leaf schemas (components & workload) +from asyncflow.components import Client, Server, Endpoint, Edge +from asyncflow.workload import RqsGenerator, RVConfig +from asyncflow.settings import SimulationSettings +``` + +> These are the **only** imports end users need. Internals (actors, registries, etc.) remain private. + +--- + +## Quick start + +A minimal end-to-end example: + +```python +from __future__ import annotations +import simpy + +from asyncflow import AsyncFlow, SimulationRunner +from asyncflow.components import Client, Server, Endpoint, Edge +from asyncflow.workload import RqsGenerator, RVConfig +from asyncflow.settings import SimulationSettings + +# 1) Workload +rqs = RqsGenerator( + id="rqs-1", + avg_active_users=RVConfig(mean=50, # Poisson by default + # or Distribution.NORMAL with variance auto=mean + ), + avg_request_per_minute_per_user=RVConfig(mean=30), # MUST be Poisson + user_sampling_window=60, # seconds +) + +# 2) Topology components +client = Client(id="client-1") + +endpoint = Endpoint( + endpoint_name="/hello", + steps=[ + {"kind": "ram", "step_operation": {"necessary_ram": 32}}, + {"kind": "initial_parsing", "step_operation": {"cpu_time": 0.002}}, + {"kind": "io_wait", "step_operation": {"io_waiting_time": 0.010}}, + ], +) + +server = Server( + id="srv-1", + server_resources={"cpu_cores": 1, "ram_mb": 1024}, + endpoints=[endpoint], +) + +edges = [ + Edge(id="gen-client", source="rqs-1", target="client-1", + latency={"mean": 0.003, "distribution": "exponential"}), + Edge(id="client-srv1", source="client-1", target="srv-1", + latency={"mean": 0.003, "distribution": "exponential"}), + Edge(id="srv1-client", source="srv-1", target="client-1", + latency={"mean": 0.003, "distribution": "exponential"}), +] + +# 3) Settings (baseline sampled metrics are mandatory) +settings = SimulationSettings( + total_simulation_time=300, # seconds (≥ 5) + sample_period_s=0.01, # 0.001 ≤ value ≤ 0.1 + # enabled_sample_metrics and enabled_event_metrics: safe defaults already set +) + +# 4) Build (validates everything with Pydantic) +payload = ( + AsyncFlow() + .add_generator(rqs) + .add_client(client) + .add_servers(server) + .add_edges(*edges) + .add_simulation_settings(settings) + .build_payload() +) + +# 5) Run +env = simpy.Environment() +results = SimulationRunner(env=env, simulation_input=payload).run() + +# 6) Use the analyzer (examples) +print(results.get_latency_stats()) +ts, rps = results.get_throughput_series() +sampled = results.get_sampled_metrics() +``` + +--- + +## `AsyncFlow` — builder (public) + +`AsyncFlow` helps you construct a **self-consistent** `SimulationPayload` with fluent, chainable calls. Every piece you add is type-checked; the final `build_payload()` validates the full graph and settings. + +### API + +```python +class AsyncFlow: + def add_generator(self, rqs_generator: RqsGenerator) -> Self: ... + def add_client(self, client: Client) -> Self: ... + def add_servers(self, *servers: Server) -> Self: ... + def add_edges(self, *edges: Edge) -> Self: ... + def add_simulation_settings(self, sim_settings: SimulationSettings) -> Self: ... + def add_load_balancer(self, load_balancer: LoadBalancer) -> Self: ... + def build_payload(self) -> SimulationPayload: ... +``` + +### Validation performed by `build_payload()` + +On build, the composed payload is validated by the Pydantic schemas: + +1. **Presence** + + * Generator, client, **≥ 1 server**, **≥ 1 edge**, settings are required. + +2. **Unique IDs** + + * Duplicate server IDs or edge IDs are rejected. + +3. **Node types** + + * Fixed enums: `client`, `server`, `load_balancer`; validated on each node. + +4. **Edge integrity** + + * Every edge **target** must be a declared node ID. + * **External IDs** (e.g., the generator id) are allowed **only as sources**. + * **No self-loops** (`source != target`). + +5. **Load balancer sanity** (if present) + + * `server_covered ⊆ declared servers`. + * There must be an **edge from the LB to every covered server**. + +6. **(Engine rule)** “No fan-out except LB” + + * Only the LB may have multiple outgoing edges among declared nodes. + +7. **Latency RV constraints (edges)** + + * `latency.mean > 0`, and if `variance` exists, `variance ≥ 0`. + +If a rule fails, a **descriptive `ValueError`** points at the offending entity/field. + +### Typical errors you might see + +* Missing parts: + `ValueError: The generator input must be instantiated before the simulation` +* Type mis-match: + `TypeError: All the instances must be of the type Server` +* Graph violations: + `ValueError: Edge client-1->srv-X references unknown target node 'srv-X'` +* LB coverage: + `ValueError: Servers ['srv-2'] are covered by LB 'lb-1' but have no outgoing edge from it.` + +--- + +## `SimulationRunner` — orchestrator (public) + +`SimulationRunner` takes a validated `SimulationPayload`, **instantiates all runtimes**, **wires** edges to their target mailboxes, **starts** every actor, **collects** sampled metrics, and advances the SimPy clock. + +### API + +```python +class SimulationRunner: + def __init__(self, *, env: simpy.Environment, simulation_input: SimulationPayload) -> None: ... + def run(self) -> ResultsAnalyzer: ... + @classmethod + def from_yaml(cls, *, env: simpy.Environment, yaml_path: str | Path) -> "SimulationRunner": ... +``` + +* **`env`**: your SimPy environment (you control its lifetime). + +* **`simulation_input`**: the payload returned by `AsyncFlow.build_payload()` (or parsed from YAML). + +* **`run()`**: + + * Builds and wires all runtime actors (`RqsGeneratorRuntime`, `ClientRuntime`, `ServerRuntime`, `LoadBalancerRuntime`, `EdgeRuntime`). + * Starts the **SampledMetricCollector** (baseline sampled metrics are mandatory and collected automatically). + * Runs until `SimulationSettings.total_simulation_time`. + * Returns a **`ResultsAnalyzer`** with helpers like: + + * `get_latency_stats()` + * `get_throughput_series()` + * `get_sampled_metrics()` + * plotting helpers (`plot_latency_distribution`, `plot_throughput`, …). + +* **`from_yaml`**: convenience constructor for loading a full payload from a YAML file and running it immediately. + +### Determinism & RNG + +* The runner uses `numpy.random.default_rng()` internally. + Seeding is not yet exposed as a public parameter; exact reproducibility across runs is **not guaranteed** in this version. + +--- + +## Extended example: with Load Balancer + +```python +from asyncflow.components import Client, Server, Endpoint, Edge +from asyncflow.components import LoadBalancer +from asyncflow import AsyncFlow, SimulationRunner +from asyncflow.workload import RqsGenerator, RVConfig +from asyncflow.settings import SimulationSettings +import simpy + +client = Client(id="client-1") + +srv1 = Server( + id="srv-1", + server_resources={"cpu_cores": 1, "ram_mb": 1024}, + endpoints=[Endpoint(endpoint_name="/api", steps=[{"kind":"ram","step_operation":{"necessary_ram":64}}])] +) +srv2 = Server( + id="srv-2", + server_resources={"cpu_cores": 2, "ram_mb": 2048}, + endpoints=[Endpoint(endpoint_name="/api", steps=[{"kind":"io_db","step_operation":{"io_waiting_time":0.012}}])] +) + +lb = LoadBalancer(id="lb-1", algorithms="round_robin", server_covered={"srv-1","srv-2"}) + +edges = [ + Edge(id="gen-client", source="rqs-1", target="client-1", latency={"mean":0.002,"distribution":"exponential"}), + Edge(id="client-lb", source="client-1", target="lb-1", latency={"mean":0.002,"distribution":"exponential"}), + Edge(id="lb-srv1", source="lb-1", target="srv-1", latency={"mean":0.002,"distribution":"exponential"}), + Edge(id="lb-srv2", source="lb-1", target="srv-2", latency={"mean":0.002,"distribution":"exponential"}), + Edge(id="srv1-client", source="srv-1", target="client-1", latency={"mean":0.003,"distribution":"exponential"}), + Edge(id="srv2-client", source="srv-2", target="client-1", latency={"mean":0.003,"distribution":"exponential"}), +] + +payload = ( + AsyncFlow() + .add_generator(RqsGenerator( + id="rqs-1", + avg_active_users=RVConfig(mean=120), + avg_request_per_minute_per_user=RVConfig(mean=20), + user_sampling_window=60, + )) + .add_client(client) + .add_servers(srv1, srv2) + .add_load_balancer(lb) + .add_edges(*edges) + .add_simulation_settings(SimulationSettings(total_simulation_time=600, sample_period_s=0.02)) + .build_payload() +) + +env = simpy.Environment() +results = SimulationRunner(env=env, simulation_input=payload).run() +``` + +--- + +## Performance tips + +* **Sampling cost** grows with `total_simulation_time / sample_period_s × (#sampled metrics × entities)`. + For long runs, consider a larger `sample_period_s` (e.g., `0.02–0.05`) to reduce memory while keeping the baseline metrics intact. + +* **Validation first**: prefer failing early by letting `build_payload()` validate everything before the runner starts. + +--- + +## Error handling (what throws) + +* **Type errors** on builder inputs (`TypeError`) when passing the wrong class to `add_*`. +* **Validation errors** (`ValueError`) on `build_payload()` if the graph is inconsistent (unknown targets, duplicates, LB edges missing, self-loops, illegal fan-out, latency rules, etc.). +* **Runtime wiring errors** (`TypeError`) if an unknown runtime target/source type appears while wiring edges (should not occur with a validated payload). + +--- + +## YAML path (alternative) + +You can construct the payload in YAML (see “YAML Input Guide”), then: + +```python +import simpy +from asyncflow import SimulationRunner + +env = simpy.Environment() +runner = SimulationRunner.from_yaml(env=env, yaml_path="scenario.yml") +results = runner.run() +``` + +--- + diff --git a/docs/api/settings.md b/docs/api/settings.md new file mode 100644 index 0000000..2970596 --- /dev/null +++ b/docs/api/settings.md @@ -0,0 +1,200 @@ + +# AsyncFlow — Public API Reference: `settings` + +This page documents the **public settings schema** you import from: + +```python +from asyncflow.settings import SimulationSettings +``` + +These settings control **simulation duration**, **sampling cadence**, and **which metrics are collected**. The model is validated with Pydantic and ships with safe defaults. + +> **Contract note** +> The four **baseline sampled metrics** are **mandatory** in the current release: +> +> * `ready_queue_len` +> * `event_loop_io_sleep` +> * `ram_in_use` +> * `edge_concurrent_connection` +> Future metrics may be opt-in; these four must remain enabled. + +--- + +## Imports + +```python +from asyncflow.settings import SimulationSettings + +# Optional: use enums instead of strings (recommended for IDE/type-checking) +from asyncflow.enums import SampledMetricName, EventMetricName +``` + +--- + +## Quick start + +```python +from asyncflow.settings import SimulationSettings +from asyncflow.enums import SampledMetricName as S, EventMetricName as E + +settings = SimulationSettings( + total_simulation_time=300, # seconds (≥ 5) + sample_period_s=0.01, # seconds, 0.001 ≤ value ≤ 0.1 + # Baseline sampled metrics are mandatory (may include more in future): + enabled_sample_metrics={S.READY_QUEUE_LEN, + S.EVENT_LOOP_IO_SLEEP, + S.RAM_IN_USE, + S.EDGE_CONCURRENT_CONNECTION}, + # Event metrics (RQS_CLOCK is the default/mandatory one today): + enabled_event_metrics={E.RQS_CLOCK}, +) +``` + +Pass the object to the builder: + +```python +from asyncflow import AsyncFlow + +payload = ( + AsyncFlow() + # … add workload, topology, edges … + .add_simulation_settings(settings) + .build_payload() +) +``` + +--- + +## Schema reference + +### `SimulationSettings` + +```python +SimulationSettings( + total_simulation_time: int = 3600, # ≥ 5 + sample_period_s: float = 0.01, # 0.001 ≤ value ≤ 0.1 + enabled_sample_metrics: set[SampledMetricName] = { + "ready_queue_len", + "event_loop_io_sleep", + "ram_in_use", + "edge_concurrent_connection", + }, + enabled_event_metrics: set[EventMetricName] = {"rqs_clock"}, +) +``` + +**Fields** + +* **`total_simulation_time`** *(int, default `3600`)* + Simulation horizon in **seconds**. **Validation:** `≥ 5`. + +* **`sample_period_s`** *(float, default `0.01`)* + Sampling cadence for time-series metrics (seconds). + **Validation:** `0.001 ≤ sample_period_s ≤ 0.1`. + **Trade-off:** lower ⇒ higher temporal resolution but more samples/memory. + +* **`enabled_sample_metrics`** *(set of enums/strings; default = baseline 4)* + **Must include at least the baseline set** shown above. You can pass enum + values or the corresponding strings. + +* **`enabled_event_metrics`** *(set of enums/strings; default `{"rqs_clock"}`)* + Per-event KPIs (not tied to `sample_period_s`). `rqs_clock` is required today; + `llm_cost` is reserved for future use. + +--- + +## Supported metric enums + +You may pass **strings** or import the enums (recommended). + +### Sampled (time-series) + +* `ready_queue_len` — event-loop ready-queue length +* `event_loop_io_sleep` — time spent waiting on I/O in the loop +* `ram_in_use` — MB of RAM in use (per server) +* `edge_concurrent_connection` — concurrent connections per edge + +```python +from asyncflow.enums import SampledMetricName as S +baseline = {S.READY_QUEUE_LEN, S.EVENT_LOOP_IO_SLEEP, S.RAM_IN_USE, S.EDGE_CONCURRENT_CONNECTION} +``` + +### Event (per-event) + +* `rqs_clock` — start/end timestamps for each request (basis for latency) +* `llm_cost` — reserved for future cost accounting + +```python +from asyncflow.enums import EventMetricName as E +SimulationSettings(enabled_event_metrics={E.RQS_CLOCK}) +``` + +--- + +## Practical presets + +* **Lean but compliant (fast inner-loop dev)** + Keep baseline metrics; increase the sampling period to reduce cost: + + ```python + SimulationSettings( + total_simulation_time=10, + sample_period_s=0.05, # fewer samples + # enabled_* use defaults with mandatory baseline & rqs_clock + ) + ``` + +* **High-resolution debugging (short runs)** + + ```python + SimulationSettings( + total_simulation_time=60, + sample_period_s=0.002, # finer resolution + ) + ``` + +* **Long scenarios (memory-friendly)** + + ```python + SimulationSettings( + total_simulation_time=1800, + sample_period_s=0.05, # fewer samples over long runs + ) + ``` + +--- + +## YAML ⇄ Python mapping + +| YAML (`sim_settings`) | Python (`SimulationSettings`) | +| -------------------------- | ------------------------------ | +| `total_simulation_time` | `total_simulation_time` | +| `sample_period_s` | `sample_period_s` | +| `enabled_sample_metrics[]` | `enabled_sample_metrics={...}` | +| `enabled_event_metrics[]` | `enabled_event_metrics={...}` | + +Strings in YAML map to the same enum names used by Python. + +--- + +## Validation & guarantees + +* `total_simulation_time ≥ 5` +* `0.001 ≤ sample_period_s ≤ 0.1` +* `enabled_sample_metrics ⊇ {ready_queue_len, event_loop_io_sleep, ram_in_use, edge_concurrent_connection}` +* `enabled_event_metrics` must include `rqs_clock` (current contract) +* Enum names are part of the public contract (stable; new values may be added in minor versions) + +--- + +## Tips & pitfalls + +* **Memory/CPU budgeting**: total samples per metric ≈ + `total_simulation_time / sample_period_s`. Long runs with very small + sampling periods produce large arrays. +* **Use enums for safety**: strings work, but enums enable IDE completion and mypy checks. +* **Forward compatibility**: additional sampled/event metrics may become available; the four baseline sampled metrics remain mandatory for the engine’s collectors. + +--- + +This reflects your current implementation: baseline sampled metrics are **required**; event metrics currently require `rqs_clock`; and sampling bounds match the `SamplePeriods` constants. diff --git a/docs/api/workload.md b/docs/api/workload.md new file mode 100644 index 0000000..c560a65 --- /dev/null +++ b/docs/api/workload.md @@ -0,0 +1,197 @@ +# AsyncFlow — Public Workload API + +This page documents the **workload models** exported from: + +```python +from asyncflow.workload import RqsGenerator, RVConfig +``` + +Use these to describe **how traffic is generated** (active users, per-user RPM, and the re-sampling window). The workload is independent from your topology and settings and plugs into the builder or payload directly. + +> **Stability:** This is part of the public API. Fields and enum values are semver-stable (new options may be added in minor releases; breaking changes only in a major). + +--- + +## Quick start + +```python +from asyncflow.workload import RqsGenerator, RVConfig + +rqs = RqsGenerator( + id="rqs-1", + avg_active_users=RVConfig(mean=100, distribution="poisson"), # or "normal" + avg_request_per_minute_per_user=RVConfig(mean=20, distribution="poisson"), + user_sampling_window=60, # seconds, re-sample active users every 60s +) + +# … then compose with the builder +from asyncflow.builder.asyncflow_builder import AsyncFlow +payload = (AsyncFlow() + .add_generator(rqs) + # .add_client(...).add_servers(...).add_edges(...).add_simulation_settings(...) + .build_payload()) +``` + +--- + +## `RqsGenerator` (workload root) + +```python +class RqsGenerator(BaseModel): + id: str + type: SystemNodes = SystemNodes.GENERATOR # fixed + avg_active_users: RVConfig # Poisson or Normal + avg_request_per_minute_per_user: RVConfig # Poisson (required) + user_sampling_window: int = 60 # seconds, bounds [1, 120] +``` + +### Field reference + +| Field | Type | Allowed / Bounds | Description | +| --------------------------------- | --------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------ | +| `id` | `str` | — | Identifier used by edges (e.g., `source="rqs-1"`). | +| `type` | enum (fixed) | `generator` | Constant; not user-set. | +| `avg_active_users` | `RVConfig` | **Distribution**: `poisson` or `normal` | Random variable for active concurrent users. If `normal`, variance is auto-filled (see `RVConfig`). | +| `avg_request_per_minute_per_user` | `RVConfig` | **Distribution**: **must be** `poisson` | Per-user rate (RPM). Enforced to Poisson by validator. | +| `user_sampling_window` | `int` (seconds) | `1 ≤ value ≤ 120` | How often to re-sample `avg_active_users`. Larger windows → slower drift; smaller windows → more volatility. | + +> Units: RPM = requests per **minute**; times are in **seconds**. + +--- + +## `RVConfig` (random variables) + +```python +class RVConfig(BaseModel): + mean: float + distribution: Distribution = "poisson" + variance: float | None = None +``` + +### Behavior & validation + +* **`mean`** is required and coerced to `float`. (Generic numeric check; positivity is **contextual**. For example, edge latency enforces `mean > 0`, while workloads accept `mean ≥ 0` and rely on samplers to truncate at 0 when needed.) +* **`distribution`** defaults to `"poisson"`. +* **Variance auto-fill:** if `distribution` is `"normal"` or `"log_normal"` **and** `variance` is omitted, it is set to `variance = mean`. + +### Supported distributions + +* `"poisson"`, `"normal"`, `"log_normal"`, `"exponential"`, `"uniform"` + (For **workload**: `avg_active_users` → Poisson/Normal; `avg_request_per_minute_per_user` → **Poisson only**.) + +--- + +## How the workload is sampled (engine semantics) + +AsyncFlow provides **joint samplers** for the two main cases: + +1. **Poisson–Poisson** (`avg_active_users ~ Poisson`, `rpm ~ Poisson`) + +* Every `user_sampling_window` seconds, draw users: + `U ~ Poisson(mean_users)`. +* Aggregate rate: `Λ = U * (rpm_per_user / 60)` (requests/second). +* Within the window, inter-arrival gaps are exponential: + `Δt ~ Exponential(Λ)` (via inverse CDF). +* If `U == 0`, no arrivals until the next window. + +2. **Gaussian–Poisson** (`avg_active_users ~ Normal`, `rpm ~ Poisson`) + +* Draw users with **truncation at 0** (negative draws become 0): + `U ~ max(N(mean, variance), 0)`. +* Then same steps as above: `Λ = U * (rpm_per_user / 60)`, `Δt ~ Exponential(Λ)`. + +**Implications of `user_sampling_window`:** + +* Smaller windows → more frequent changes in `U` (bursty arrivals). +* Larger windows → steadier rate within each window, fewer rate shifts. + +--- + +## Examples + +### A. Steady mid-load (Poisson–Poisson) + +```python +rqs = RqsGenerator( + id="steady", + avg_active_users=RVConfig(mean=80, distribution="poisson"), + avg_request_per_minute_per_user=RVConfig(mean=15, distribution="poisson"), + user_sampling_window=60, +) +``` + +### B. Bursty users (Gaussian–Poisson) + +```python +rqs = RqsGenerator( + id="bursty", + avg_active_users=RVConfig(mean=50, distribution="normal", variance=200), # bigger var → burstier + avg_request_per_minute_per_user=RVConfig(mean=18, distribution="poisson"), + user_sampling_window=15, # faster re-sampling → faster drift +) +``` + +### C. Tiny smoke test + +```python +rqs = RqsGenerator( + id="smoke", + avg_active_users=RVConfig(mean=1, distribution="poisson"), + avg_request_per_minute_per_user=RVConfig(mean=2, distribution="poisson"), + user_sampling_window=30, +) +``` + +--- + +## YAML / JSON equivalence + +If you configure via YAML/JSON, the equivalent block is: + +```yaml +rqs_input: + id: rqs-1 + avg_active_users: + mean: 100 + distribution: poisson # or normal + # variance: 100 # optional; auto=mean if normal/log_normal + avg_request_per_minute_per_user: + mean: 20 + distribution: poisson # must be poisson + user_sampling_window: 60 # [1..120] seconds +``` + +--- + +## Validation & error messages (what you can expect) + +* `avg_request_per_minute_per_user.distribution != poisson` + → `ValueError("At the moment the variable avg request must be Poisson")` +* `avg_active_users.distribution` not in `{poisson, normal}` + → `ValueError("At the moment the variable active user must be Poisson or Gaussian")` +* Non-numeric `mean` in any `RVConfig` + → `ValueError("mean must be a number (int or float)")` +* `user_sampling_window` outside `[1, 120]` + → Pydantic range validation error with clear bounds in the message. + +> Note: Positivity for means is enforced **contextually**. For workload, negative draws are handled by the samplers (e.g., truncated Normal). For edge latency, positivity is enforced at the edge model level. + +--- + +## Common pitfalls & tips + +* **Using Normal without variance:** If you set `distribution="normal"` and omit `variance`, it auto-fills to `variance=mean`. Set it explicitly if you want heavier or lighter variance than the default. +* **Confusing units:** RPM is **per minute**, not per second. The engine converts internally. +* **Over-reactive windows:** Very small `user_sampling_window` (e.g., `1–5s`) makes the rate jumpy; this is fine for “bursty” scenarios but can be noisy. +* **Zero arrivals:** If a window samples `U=0`, you’ll get no arrivals until the next window; this is expected. + +--- + +## Interplay with Settings & Metrics + +* The workload **does not** depend on the sampling cadence of time-series metrics (`SimulationSettings.sample_period_s`). Sampling controls **observability**, not arrivals. +* **Baseline sampled metrics are mandatory** in the current release (ready-queue length, I/O sleep, RAM, edge concurrency). Future metrics can be opt-in. + +--- + +With `RqsGenerator` + `RVConfig` you can describe steady, bursty, or sparse loads with a few lines—then reuse the same topology and settings to compare how architecture choices behave under different traffic profiles. diff --git a/docs/dev-workflow-guide.md b/docs/dev-workflow-guide.md new file mode 100644 index 0000000..ff0e3ce --- /dev/null +++ b/docs/dev-workflow-guide.md @@ -0,0 +1,273 @@ +# **Development Workflow & Architecture Guide** + +This document describes the development workflow, repository architecture, and branching strategy for **AsyncFlow** +--- + +## 1) Repository Layout + +### 1.1 Project tree (backend) + +``` +AsyncFlow-backend/ +├─ examples/ # runnable examples (YAML & Python) +│ └─ data/ +├─ scripts/ # helper bash scripts (lint, quality, etc.) +│ └─ quality-check.sh +├─ docs/ # product & technical docs +├─ tests/ # unit & integration tests +│ ├─ unit/ +│ └─ integration/ +├─ src/ +│ └─ asyncflow/ # Python package (library) +│ ├─ __init__.py # public "high-level" facade (re-exports) +│ ├─ builder/ +│ │ └─ asyncflow_builder.py # internal builder implementation +│ ├─ components/ # PUBLIC FACADE: leaf Pydantic components +│ │ └─ __init__.py # (barrel: re-exports Client, Server, Endpoint, Edge) +│ ├─ config/ +│ │ ├─ constants.py # enums/constants (source of truth) +│ │ └─ plot_constants.py +│ ├─ enums/ # PUBLIC FACADE: selected enums +│ │ └─ __init__.py # (barrel: re-exports Distribution, SampledMetricName, …) +│ ├─ metrics/ +│ │ ├─ analyzer.py # results post-processing +│ │ ├─ collector.py # sampling collectors +│ │ ├─ client.py +│ │ ├─ edge.py +│ │ └─ server.py +│ ├─ resources/ +│ │ ├─ registry.py +│ │ └─ server_containers.py +│ ├─ runtime/ +│ │ ├─ simulation_runner.py # engine entry-point +│ │ ├─ rqs_state.py +│ │ ├─ actors/ # INTERNAL: Client/Server/Edge/Generator actors +│ │ └─ routing/ +│ │ └─ lb_algorithms.py +│ ├─ samplers/ +│ │ ├─ poisson_poisson.py +│ │ ├─ gaussian_poisson.py +│ │ └─ common_helpers.py +│ ├─ schemas/ # INTERNAL: full Pydantic schema impls +│ │ ├─ payload.py +│ │ ├─ common/ +│ │ │ └─ random_variables.py +│ │ ├─ settings/ +│ │ │ └─ simulation.py +│ │ ├─ topology/ +│ │ │ ├─ edges.py +│ │ │ ├─ endpoint.py +│ │ │ ├─ graph.py +│ │ │ └─ nodes.py +│ │ └─ workload/ +│ │ └─ rqs_generator.py +│ ├─ settings/ # PUBLIC FACADE: SimulationSettings +│ │ └─ __init__.py +│ └─ workload/ # PUBLIC FACADE: RqsGenerator +│ └─ __init__.py +├─ poetry.lock +├─ pyproject.toml +└─ README.md +``` + +**Public API surface (what you guarantee as stable):** + +* High-level: + + ```py + from asyncflow import AsyncFlow, SimulationRunner + ``` +* Components: + + ```py + from asyncflow.components import Client, Server, Endpoint, Edge + ``` +* Workload & Settings: + + ```py + from asyncflow.workload import RqsGenerator + from asyncflow.settings import SimulationSettings + ``` +* Enums: + + ```py + from asyncflow.enums import Distribution, SampledMetricName, EventMetricName, LbAlgorithmsName + ``` + +> Everything under `asyncflow.schemas/`, `asyncflow.runtime/actors/`, `asyncflow.builder/` is **internal** (implementation details). The facades re-export only what users should import. + +### 1.2 What each top-level area does + +| Area | Purpose | +| --------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| **builder/** | Internal implementation of the pybuilder used by `AsyncFlow`. Users shouldn’t import from here directly. | +| **components/** | **Public facade** for *leaf* Pydantic models used in payloads: `Client`, `Server`, `Endpoint`, `Edge`. | +| **config/** | Constants & enums source-of-truth (kept internal; only *selected* enums are re-exported via `asyncflow.enums`). | +| **enums/** | **Public facade** re-exporting the enums that appear in public payloads (`Distribution`, `SampledMetricName`, `EventMetricName`, …). | +| **metrics/** | Post-processing & visualization support (analyzer & collectors). | +| **resources/** | Runtime SimPy resource wiring (CPU/RAM containers, registries). | +| **runtime/** | The simulation engine entry-point (`SimulationRunner`), request lifecycle, and internal actors. | +| **samplers/** | Random-variable samplers for the generator and steps. | +| **schemas/** | Full Pydantic schema implementation and validation rules (internal). | +| **settings/** | **Public facade** re-exporting `SimulationSettings`. | +| **workload/** | **Public facade** re-exporting `RqsGenerator`. | + +--- + +## 2) Branching Strategy: Git Flow (+ `refactor/*`) + +We use **Git Flow** with an extra branch family for clean refactors. + +### Diagram + +```mermaid +--- +title: Git Flow (with refactor/*) +--- +gitGraph + commit id: "Initial commit" + branch develop + checkout develop + commit id: "Setup Project" + + branch feature/user-authentication + checkout feature/user-authentication + commit id: "feat: Add login form" + commit id: "feat: Add form validation" + checkout develop + merge feature/user-authentication + + branch refactor/performance-cleanup + checkout refactor/performance-cleanup + commit id: "refactor: simplify hot path" + commit id: "refactor: remove dead code" + checkout develop + merge refactor/performance-cleanup + + branch release/v1.0.0 + checkout release/v1.0.0 + commit id: "fix: Pre-release bug fixes" tag: "v1.0.0" + checkout main + merge release/v1.0.0 + checkout develop + merge release/v1.0.0 + + checkout main + branch hotfix/critical-login-bug + checkout hotfix/critical-login-bug + commit id: "fix: Critical production bug" tag: "v1.0.1" + checkout main + merge hotfix/critical-login-bug + checkout develop + merge hotfix/critical-login-bug +``` + +### Branch families + +* **main** – production-ready, tagged releases only (no direct commits). +* **develop** – integration branch; base for `feature/*` and `refactor/*`. +* **feature/**\* – user-visible features (new endpoints/behavior, DB changes). +* **refactor/**\* – **no new features**; internal changes, performance, renames, file moves, debt trimming. Use `refactor:` commit prefix. +* **release/**\* – freeze, harden, docs; merge into `main` (tag) and back into `develop`. +* **hotfix/**\* – urgent production fixes; branch off `main` tag; merge into `main` (tag) and `develop`. + +**When to pick which:** + +* New behavior or external contract → `feature/*` +* Internal cleanup only → `refactor/*` +* Ship a version → `release/*` +* Patch production now → `hotfix/*` + +--- + +## 3) CI/CD Pipeline + +A layered pipeline (GitHub Actions recommended) mirrors the branching model. + +### 3.1 CI on PRs to `develop` (feature/refactor) + +**Quick Suite** (fast, no external services): + +* **Ruff** (or Black/isort/Flake8) → style/lint +* **mypy** → type checking +* **pytest** unit-only: `pytest -m "not integration"` + +### 3.2 CI on push to `develop` + +**Full Suite** (slower; with services): + +* Full tests, including `@pytest.mark.integration` +* Spin up **PostgreSQL**/**Redis** if required by integration tests +* Build multi-stage Docker image & smoke test +* Optionally build docs (mkdocs) to catch docstring regressions + +### 3.3 CI on `release/*` + +* Always run **Full Suite** +* Build and publish versioned images/artifacts +* Generate release notes/changelog + +### 3.4 CI on `hotfix/*` + +* Run **Full Suite** +* Tag patch release on merge to `main` +* Merge back to `develop` + +> Refactors should be **behavior-preserving**. If a refactor touches hot paths, add micro-benchmarks or targeted integration tests and consider running the Full Suite pre-merge. + +--- + +## 4) Quality Gates & Conventions + +* **Style & Lint**: Ruff (or Black + isort + Flake8). No violations. +* **Types**: mypy clean. +* **Tests**: + + * Unit tests for new/refactored code paths + * Integration tests for end-to-end behavior +* **Commits**: Conventional commits (`feat:`, `fix:`, `refactor:`, `docs:`, `test:`, `chore:`). +* **PRs**: Review required; refactors must include rationale and scope. +* **Docs**: Update `docs/` and public API references when you touch public facades. + +--- + +## 5) Public API & Stability Contract + +Only **facade modules** are considered public and stable: + +* High-level: + + ```py + from asyncflow import AsyncFlow, SimulationRunner + ``` +* Components: + + ```py + from asyncflow.components import Client, Server, Endpoint, Edge + ``` +* Workload & Settings: + + ```py + from asyncflow.workload import RqsGenerator + from asyncflow.settings import SimulationSettings + ``` +* Enums: + + ```py + from asyncflow.enums import Distribution, SampledMetricName, EventMetricName, LbAlgorithmsName + ``` + +Everything else—`schemas/`, `runtime/actors/`, `builder/`, `samplers/`, `resources/`—is **internal** and can change without notice. Use **SemVer** for releases; any change to the public facades that breaks compatibility requires a **major** bump. + +--- + +## 6) Developer Commands (Poetry) + +* Install: `poetry install` +* Lint/format: `bash scripts/quality-check.sh` (or your Ruff/Black commands) +* Test (unit only): `pytest -m "not integration"` +* Test (full): `pytest` +* Run example: `python examples/single_server_pybuilder.py` + +--- + diff --git a/docs/dev_workflow_guide.md b/docs/dev_workflow_guide.md deleted file mode 100644 index 8c1974c..0000000 --- a/docs/dev_workflow_guide.md +++ /dev/null @@ -1,256 +0,0 @@ -# **Development Workflow & Architecture Guide** - -This document outlines the standardized development workflow, repository architecture, and branching strategy for the backend of the AsyncFlow project. Adhering to these guidelines ensures consistency, maintainability, and a scalable development process. - - -## 1. Repository Layout - -### 1.1 Backend Service (`AsyncFlow-backend`) - -The repository hosts the entire FastAPI backend for AsyncFlow. -Its job is to expose the REST API, run the discrete-event simulation, talk to the database, and provide metrics. - -``` -AsyncFlow-backend/ -├── example/ # examples of working simulations -│ ├── data -├── scripts/ # helper bash scripts (lint, dev-startup, …) -│ └── quality-check.sh -├── docs/ # project vision & low-level docs -│ └── AsyncFlow-documentation/ -├── tests/ # unit & integration tests -│ ├── unit/ -│ └── integration/ -├── src/ # application code lives here -│ └── app/ -│ ├── config/ # Pydantic Settings + constants -│ ├── metrics/ # logic to compute/aggregate simulation KPIs -│ ├── resources/ # SimPy resource registry (CPU/RAM containers, etc.) -│ ├── runtime/ # simulation core -│ │ ├── rqs_state.py # RequestState & Hop -│ │ ├── simulation_runner.py # logic to initialize the whole simulation -│ │ └── actors/ # SimPy “actors”: Edge, Server, Client, RqsGenerator -│ ├── pybuilder/ # Pythonic way to build the simulation payload -│ ├── samplers/ # stochastic samplers (Gaussian-Poisson, etc.) -│ ├── schemas/ # Pydantic input/output models -├── poetry.lock -├── pyproject.toml -└── README.md -``` - -> Note: If your package name under `src/` is `asyncflow/` (instead of `app/`), the structure is identical—only the package folder name changes. - -### What each top-level directory in `src/app` does - -| Directory | Purpose | -| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`config/`** | Centralised configuration layer. Contains Pydantic `BaseSettings` classes for reading environment variables and constants/enums used across the simulation engine. | -| **`metrics/`** | Post-processing and analytics. Aggregates raw simulation traces into KPIs such as latency percentiles, throughput, resource utilisation, and other performance metrics. | -| **`resources/`** | Runtime resource registry for simulated hardware components (e.g., SimPy `Container`s for CPU and RAM). Decouples resource management from actor behaviour. | -| **`runtime/`** | Core simulation engine. Orchestrates SimPy execution, maintains request state, and wires together simulation components. Includes: | -| | - **`rqs_state.py`** — Defines `RequestState` and `Hop` for tracking request lifecycle. | -| | - **`simulation_runner.py`** — Entry point for initialising and running simulations. | -| | - **`actors/`** — SimPy actor classes representing system components (`RqsGenerator`, `Client`, `Server`, `Edge`) and their behaviour. | -| **`pybuilder/`** | Pythonic builder to programmatically construct validated simulation payloads (alternative to YAML). | -| **`samplers/`** | Random-variable samplers for stochastic simulation. Supports Poisson, Normal, and mixed distributions for modelling inter-arrival times and service steps. | -| **`schemas/`** | Pydantic models for input/output validation and serialisation. Includes scenario definitions, topology graphs, simulation settings, and results payloads. | - ---- - -### Other Top-Level Directories - -| Directory | Purpose | -| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`example/`** | Ready-to-run simulation scenarios and example configurations. Includes `data/` with YAML definitions and scripts to demonstrate engine usage. | -| **`scripts/`** | Utility shell scripts for development workflow, linting, formatting, and local startup (`quality-check.sh`, etc.). | -| **`docs/`** | Project documentation. Contains both high-level vision documents and low-level technical references (`AsyncFlow-documentation/`). | -| **`tests/`** | Automated test suite, split into **unit** and **integration** tests to verify correctness of both individual components and end-to-end scenarios. | - ---- - -## 2. Branching Strategy: Git Flow - -To manage code development and releases in a structured manner, we use the **Git Flow** branching model—with an additional **refactor** branch type for non-feature refactoring work. - -### Git Flow Workflow Diagram - -```mermaid ---- -title: Git Flow (with refactor/*) ---- - -gitGraph - commit id: "Initial commit" - branch develop - checkout develop - commit id: "Setup Project" - - %% feature branch - branch feature/user-authentication - checkout feature/user-authentication - commit id: "feat: Add login form" - commit id: "feat: Add form validation" - checkout develop - merge feature/user-authentication - - %% refactor branch (no new features, code cleanup/improvements) - branch refactor/performance-cleanup - checkout refactor/performance-cleanup - commit id: "refactor: simplify hot path" - commit id: "refactor: remove dead code" - checkout develop - merge refactor/performance-cleanup - - %% release branch - branch release/v1.0.0 - checkout release/v1.0.0 - commit id: "fix: Pre-release bug fixes" tag: "v1.0.0" - checkout main - merge release/v1.0.0 - checkout develop - merge release/v1.0.0 - - %% hotfix branch - checkout main - branch hotfix/critical-login-bug - checkout hotfix/critical-login-bug - commit id: "fix: Critical production bug" tag: "v1.0.1" - checkout main - merge hotfix/critical-login-bug - checkout develop - merge hotfix/critical-login-bug -``` - ---- - -### Git Flow Explained - -This workflow is built upon two long-lived branches and several temporary, supporting branches. - -#### Main Branches - -1. **`main`** - **Purpose**: Production-ready, stable code. Every commit on `main` represents an official release. - **Rules**: Never commit directly to `main`. It only receives merges from `release/*` and `hotfix/*`. Each merge should be **tagged** (e.g., `v1.0.0`). - -1. **`develop`** - **Purpose**: The main integration branch for ongoing development. It contains all completed and tested changes planned for the next release. - **Rules**: Base for `feature/*` and `refactor/*` branches. Reflects the most up-to-date development state. - -#### Supporting Branches - -3. **`feature/*`** (e.g., `feature/user-authentication`) - **Purpose**: Develop a new, specific feature in isolation. - **Lifecycle**: - - 1. Branched off **`develop`**. - 1. When complete, open a **Pull Request (PR)** back into **`develop`**. - 3. Delete the branch after merge. - -3. **`refactor/*`** (e.g., `refactor/performance-cleanup`) **← new** - **Purpose**: Perform **non-functional code changes** (no new features), such as internal restructurings, performance optimisations, reducing technical debt, renaming, file moves, or dependency hygiene. - **Rules**: - - * Must **not** introduce user-visible features or breaking API/DB changes. - * Prefer commit prefix `refactor:`; avoid `feat:`. - * Keep changes scoped and well-described to simplify review. - **Lifecycle**: - - 1. Branched off **`develop`**. - 1. Open a **PR** back into **`develop`** (same review gates as features). - 3. Delete the branch after merge. - -5. **`release/*`** (e.g., `release/v1.1.0`) - **Purpose**: Prepare a production release—final bug fixes, docs, and last-minute tests. The feature set is frozen here. - **Lifecycle**: - - 1. Branched off **`develop`** when feature-complete. - 1. Merge into **`main`** (tag version) and back into **`develop`**. - 3. Delete after merges. - -6. **`hotfix/*`** (e.g., `hotfix/critical-login-bug`) - **Purpose**: Quickly patch a critical bug in production. - **Lifecycle**: - - 1. Branched off **`main`** (from a specific tag). - 1. Merge into **`main`** (tag a patch version, e.g., `v1.0.1`) **and** into **`develop`**. - 3. Delete after merges. - -**When to choose which branch?** - -* **New behavior / endpoints / DB migrations** → `feature/*` -* **Internal code improvements only** → `refactor/*` -* **Release prep** → `release/*` -* **Production emergency** → `hotfix/*` - ---- - -## 3. Continuous Integration / Continuous Delivery (CI/CD) Pipeline - -A robust CI/CD pipeline guarantees that every change is automatically validated, packaged, and—when appropriate—promoted to the next environment. Our pipeline is built with **GitHub Actions** and mirrors the branching model. - -We start with the CI part related to pushes and PRs in the backend service. - -### 3.1 CI for project-backend on `develop` - -#### 3.1.1 Goals - -* **Fast feedback** – linting, type-checking, and unit tests finish quickly for every Pull Request. -* **Confidence in integration** – migrations, integration tests, and Docker smoke-tests run on every push to `develop`. -* **Deployment safety** – only artifacts from a green pipeline can be released/deployed. -* **Parity with production** – the same multi-stage Dockerfile is built and probed in CI. - -#### 3.1.1 Pipeline Layers - -* **Quick Suite (PR to `develop`)** - *Runs in seconds; no external services or containers.* - - * Black, isort, Flake8 (or Ruff if adopted) - * mypy static type-checking - * Unit tests only (`pytest -m "not integration"`) - -* **Full Suite (push to `develop`)** - *Runs in a few minutes; includes real services and Docker.* - - * Full test suite, including `@pytest.mark.integration` tests - * Database migrations (PostgreSQL) against a disposable instance - * Redis available for tests if required - * Build multi-stage Docker image and run a quick smoke test - -### 3.1 CI for `feature/*` and `refactor/*` - -* **On PR to `develop`**: run the **Quick Suite** (lint, type-checking, unit tests). -* **Optional (recommended for large changes)**: allow a manual or scheduled **Full Suite** run for the branch to catch integration issues early. -* **On merge to `develop`**: the **Full Suite** runs (as described above). - -> `refactor/*` branches should maintain **zero behavior change**. If a refactor has the potential to alter behavior (e.g., performance-sensitive code), add targeted tests and consider a manual Full Suite run before merge. - -### 3.3 CI for `release/*` - -* Always run the **Full Suite**. -* Build and publish versioned artifacts/images to the registry with the release tag. -* Prepare release notes and changelog generation. - -### 3.3 CI for `hotfix/*` - -* Run the **Full Suite** against the hotfix branch. -* Tag the patch release on merge to `main` and propagate the merge back to `develop`. - ---- - -## 4. Quality Gates & Conventions - -* **Static Analysis**: mypy (no new type errors). -* **Style**: Black/Flake8/isort or Ruff; no lint violations. -* **Tests**: - - * Unit tests for new logic or refactor touch points. - * Integration tests for cross-layer behavior. -* **Commits**: Conventional commits (`feat:`, `fix:`, `refactor:`, `docs:`, `test:`, `chore:` …). -* **Code Review**: PRs must be reviewed and approved; refactors must include rationale in the PR description (what changed, why safe). -* **Documentation**: Update `README`, `docs/`, and API docs when applicable. - ---- - - -By following this workflow—now with the **refactor** branch type—you keep feature development cleanly separated from codebase improvements, reduce merge friction, and maintain a predictable, high-quality delivery pipeline. diff --git a/docs/fastsim_vision.md b/docs/fastsim_vision.md deleted file mode 100644 index bf5b88a..0000000 --- a/docs/fastsim_vision.md +++ /dev/null @@ -1,41 +0,0 @@ -## 1 Why AsyncFlow? - -FastAPI + Uvicorn gives Python teams a lightning-fast async stack, yet sizing it for production still means guess-work, costly cloud load-tests or late surprises. **AsyncFlow** fills that gap by becoming a **digital twin** of your actual service: - -* It **replays** your FastAPI + Uvicorn event-loop behavior in SimPy, generating exactly the same kinds of asynchronous steps (parsing, CPU work, I/O, LLM calls) that happen in real code. -* It **models** your infrastructure primitives—CPU cores (via a SimPy `Resource`), database pools, rate-limiters, even GPU inference quotas—so you can see queue lengths, scheduling delays, resource utilization, and end-to-end latency. -* It **outputs** the very metrics you’d scrape in production (p50/p95/p99 latency, ready-queue lag, current & max concurrency, throughput, cost per LLM call), but entirely offline, in seconds. - -With AsyncFlow you can ask *“What happens if traffic doubles on Black Friday?”*, *“How many cores to keep p95 < 100 ms?”* or *“Is our LLM-driven endpoint ready for prime time?”*—and get quantitative answers **before** you deploy. - -**Outcome:** data-driven capacity planning, early performance tuning, and far fewer “surprises” once you hit production. - ---- - -## 2 Project Goals - -| # | Goal | Practical Outcome | -| - | ------------------------- | ------------------------------------------------------------------------ | -| 1 | **Pre-production sizing** | Know core-count, pool-size, replica-count to hit SLA. | -| 2 | **Scenario lab** | Explore traffic models, endpoint mixes, latency distributions, RTT, etc. | -| 3 | **Twin metrics** | Produce the same metrics you’ll scrape in prod (latency, queue, CPU). | -| 4 | **Rapid iteration** | One YAML/JSON config or REST call → full report. | -| 5 | **Educational value** | Visualise how GIL lag, queue length, concurrency react to load. | - ---- - -## 3 Who benefits & why (detailed) - -| Audience | Pain-point solved | AsyncFlow value | -| ------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **Backend engineers** | Unsure if 4 vCPU container survives a marketing spike | Run *what-if* load, tweak CPU cores / pool size, get p95 & max-concurrency before merging. | -| **DevOps / SRE** | Guesswork in capacity planning; cost of over-provisioning | Simulate 1 → N replicas, autoscaler thresholds, DB-pool size; pick the cheapest config meeting SLA. | -| **ML / LLM product teams** | LLM inference cost & latency hard to predict | Model the LLM step with a price + latency distribution; estimate \$/req and GPU batch gains without real GPU. | -| **Educators / Trainers** | Students struggle to “see” event-loop internals | Visualise GIL ready-queue lag, CPU vs I/O steps, effect of blocking code—perfect for live demos and labs. | -| **Consultants / Architects** | Need a quick PoC of new designs for clients | Drop endpoint definitions in YAML and demo throughput / latency under projected load in minutes. | -| **Open-source community** | Lacks a lightweight Python simulator for ASGI workloads | Extensible codebase; easy to plug in new resources (rate-limit, cache) or traffic models (spike, uniform ramp). | -| **System-design interviewees** | Hard to quantify trade-offs in whiteboard interviews | Prototype real-time metrics—queue lengths, concurrency, latency distributions—to demonstrate in interviews how your design scales and where bottlenecks lie. | - ---- - -**Bottom-line:** AsyncFlow turns abstract architecture diagrams into concrete numbers—*before* spinning up expensive cloud environments—so you can build, validate and discuss your designs with full confidence. diff --git a/docs/pybuilder.md b/docs/guides/builder.md similarity index 53% rename from docs/pybuilder.md rename to docs/guides/builder.md index eb5d9fb..e90fe22 100644 --- a/docs/pybuilder.md +++ b/docs/guides/builder.md @@ -1,17 +1,16 @@ -# AsyncFlow – Programmatic Input Guide (pybuilder) +# AsyncFlow – Programmatic Input Guide (builder) This guide shows how to **build the full simulation input in Python** using the -`AsyncFlow` builder (the “pybuilder”), with the same precision and validation -guarantees as the YAML flow. You’ll see **all components, valid values, units, -constraints, and how validation is enforced**. +`AsyncFlow` builder, with the same precision and validation guarantees as the YAML flow. +You’ll see **all components, valid values, units, constraints, and how validation is enforced**. Under the hood, the builder assembles a single `SimulationPayload`: ```python SimulationPayload( - rqs_input=RqsGenerator(...), # traffic generator (workload) - topology_graph=TopologyGraph(...), # system architecture as a graph - sim_settings=SimulationSettings(...), # global settings and metrics + rqs_input=RqsGenerator(...), # traffic generator (workload) + topology_graph=TopologyGraph(...), # system architecture as a graph + sim_settings=SimulationSettings(...), # global settings and metrics ) ``` @@ -28,15 +27,12 @@ from __future__ import annotations import simpy -from asyncflow.pybuilder.input_builder import AsyncFlow -from asyncflow.runtime.simulation_runner import SimulationRunner -from asyncflow.schemas.full_simulation_input import SimulationPayload -from asyncflow.schemas.rqs_generator_input import RqsGenerator -from asyncflow.schemas.simulation_settings_input import SimulationSettings -from asyncflow.schemas.system_topology.endpoint import Endpoint -from asyncflow.schemas.system_topology.full_system_topology import ( - Client, Edge, Server, +# Public, user-facing API +from asyncflow import AsyncFlow, SimulationRunner +from asyncflow.components import ( + RqsGenerator, SimulationSettings, Endpoint, Client, Server, Edge ) +from asyncflow.schemas.payload import SimulationPayload # optional, for typing # 1) Workload generator = RqsGenerator( @@ -50,11 +46,10 @@ generator = RqsGenerator( client = Client(id="client-1") endpoint = Endpoint( endpoint_name="/hello", - probability=1.0, # per-endpoint weight on this server steps=[ - {"kind": "ram", "step_operation": {"necessary_ram": 32}}, - {"kind": "initial_parsing", "step_operation": {"cpu_time": 0.002}}, - {"kind": "io_wait", "step_operation": {"io_waiting_time": 0.010}}, + {"kind": "ram", "step_operation": {"necessary_ram": 32}}, + {"kind": "initial_parsing", "step_operation": {"cpu_time": 0.002}}, + {"kind": "io_wait", "step_operation": {"io_waiting_time": 0.010}}, ], ) server = Server( @@ -103,8 +98,9 @@ payload: SimulationPayload = ( AsyncFlow() .add_generator(generator) .add_client(client) - .add_servers(server) - .add_edges(*edges) + .add_servers(server) # varargs; supports multiple + .add_edges(*edges) # varargs; supports multiple + # .add_load_balancer(lb) # optional .add_simulation_settings(settings) .build_payload() ) @@ -138,8 +134,7 @@ dictionary that Pydantic converts into an `RVConfig`: * `mean` is **required** and numeric; coerced to `float`. * If `distribution` is `"normal"` or `"log_normal"` and `variance` is absent, it defaults to **`variance = mean`**. -* For **edge latency** (see §3.3): **`mean > 0`** and, if provided, - **`variance ≥ 0`**. +* For **edge latency**: **`mean > 0`** and, if provided, **`variance ≥ 0`**. **Units** @@ -151,27 +146,27 @@ dictionary that Pydantic converts into an `RVConfig`: ## 2) Workload: `RqsGenerator` ```python -from asyncflow.schemas.rqs_generator_input import RqsGenerator +from asyncflow.components import RqsGenerator generator = RqsGenerator( id="rqs-1", avg_active_users={ "mean": 100, - "distribution": "poisson", # or "normal" + "distribution": "poisson", # or "normal" # "variance": , # optional; auto=mean if "normal" }, avg_request_per_minute_per_user={ "mean": 20, - "distribution": "poisson", # must be poisson in current samplers + "distribution": "poisson", # must be poisson in current samplers }, - user_sampling_window=60, # [1 .. 120] seconds + user_sampling_window=60, # [1 .. 120] seconds ) ``` **Semantics** -* `avg_active_users`: active users as a random variable (Poisson or Normal). -* `avg_request_per_minute_per_user`: per-user RPM (Poisson). +* `avg_active_users`: active users as a random variable (**Poisson** or **Normal**). +* `avg_request_per_minute_per_user`: per-user RPM (**Poisson** only). * `user_sampling_window`: re-sample active users every N seconds. --- @@ -184,7 +179,7 @@ LB) and edges (network links). ### 3.1 Client ```python -from asyncflow.schemas.system_topology.full_system_topology import Client +from asyncflow.components import Client client = Client(id="client-1") # type is fixed to 'client' ``` @@ -192,25 +187,23 @@ client = Client(id="client-1") # type is fixed to 'client' ### 3.2 Server & Endpoints ```python -from asyncflow.schemas.system_topology.endpoint import Endpoint -from asyncflow.schemas.system_topology.full_system_topology import Server +from asyncflow.components import Endpoint, Server endpoint = Endpoint( - endpoint_name="/api", # normalized to lowercase internally - probability=1.0, # endpoint selection weight within the server + endpoint_name="/api", # normalized to lowercase internally steps=[ - {"kind": "ram", "step_operation": {"necessary_ram": 64}}, + {"kind": "ram", "step_operation": {"necessary_ram": 64}}, {"kind": "cpu_bound_operation", "step_operation": {"cpu_time": 0.004}}, - {"kind": "io_db", "step_operation": {"io_waiting_time": 0.012}}, + {"kind": "io_db", "step_operation": {"io_waiting_time": 0.012}}, ], ) server = Server( - id="srv-1", # type fixed to 'server' + id="srv-1", # type fixed to 'server' server_resources={ "cpu_cores": 2, # int ≥ 1 "ram_mb": 2048, # int ≥ 256 - "db_connection_pool": None, # optional future-use + "db_connection_pool": None, # optional }, endpoints=[endpoint], ) @@ -237,13 +230,14 @@ server = Server( **Runtime semantics (high level)** * RAM is reserved before CPU, then released at the end. -* CPU tokens acquired lazily for consecutive CPU steps; released on I/O. +* CPU tokens are acquired for CPU-bound segments; released when switching to I/O. * I/O waits **do not** hold a CPU core. ### 3.3 Load Balancer (optional) ```python -from asyncflow.schemas.system_topology.full_system_topology import LoadBalancer +from asyncflow.schemas.topology.nodes import LoadBalancer # internal type +# (Use only if you build the graph manually. AsyncFlow builder hides the graph.) lb = LoadBalancer( id="lb-1", @@ -260,16 +254,15 @@ lb = LoadBalancer( ### 3.4 Edges ```python -from asyncflow.schemas.system_topology.full_system_topology import Edge +from asyncflow.components import Edge edge = Edge( id="client-to-srv1", source="client-1", # may be external only for sources target="srv-1", # MUST be a declared node latency={"mean": 0.003, "distribution": "exponential"}, - probability=1.0, # optional [0..1] - edge_type="network_connection", # current default/only - dropout_rate=0.01, # optional [0..1] + # edge_type defaults to "network_connection" + # dropout_rate defaults to 0.01 (0.0 .. 1.0) ) ``` @@ -278,17 +271,14 @@ edge = Edge( * `source`: can be an **external** ID for entry points (e.g., `"rqs-1"`). * `target`: **must** be a declared node (`client`, `server`, `load_balancer`). * `latency`: random variable; **`mean > 0`**, `variance ≥ 0` (if provided). -* `probability`: used when a node has multiple outgoing edges (fan-out). - If your code enforces “no fan-out except LB”, do **not** create multiple - outgoing edges from nodes other than the LB. -* `dropout_rate`: per-request/packet drop probability on this link. +* **Fan-out rule**: the model enforces **“no fan-out except LB”**—i.e., only the load balancer may have multiple outgoing edges. --- ## 4) Global Settings: `SimulationSettings` ```python -from asyncflow.schemas.simulation_settings_input import SimulationSettings +from asyncflow.components import SimulationSettings settings = SimulationSettings( total_simulation_time=600, # seconds, default 3600, min 5 @@ -316,16 +306,16 @@ settings = SimulationSettings( ## 5) Building the Payload with `AsyncFlow` ```python -from asyncflow.pybuilder.input_builder import AsyncFlow -from asyncflow.schemas.full_simulation_input import SimulationPayload +from asyncflow import AsyncFlow +from asyncflow.schemas.payload import SimulationPayload # optional typing flow = ( AsyncFlow() .add_generator(generator) .add_client(client) - .add_servers(server) # varargs; supports multiple - .add_edges(*edges) # varargs; supports multiple - # .add_load_balancer(lb) # optional + .add_servers(server) # varargs + .add_edges(*edges) # varargs + # .add_load_balancer(lb) .add_simulation_settings(settings) ) @@ -337,10 +327,9 @@ payload: SimulationPayload = flow.build_payload() 1. **Presence**: generator, client, ≥1 server, ≥1 edge, settings. 2. **Unique IDs**: servers and edges have unique IDs. 3. **Node types**: fixed enums: `client`, `server`, `load_balancer`. -4. **Edge integrity**: every target is a declared node; external IDs allowed only as sources; no self-loops (`source != target`). -5. **Load balancer sanity**: `server_covered ⊆ declared_servers` and there is an edge from the LB to **each** covered server. -6. **(Optional in your codebase)** “No fan-out except LB” validator: multiple - outgoing edges only allowed for the LB. +4. **Edge integrity**: every target is a declared node; external IDs allowed only as sources; no self-loops. +5. **Load balancer sanity**: `server_covered ⊆ declared_servers` **and** there is an edge from the LB to **each** covered server. +6. **No fan-out except LB**: only the LB may have multiple outgoing edges. If any rule is violated, a **descriptive `ValueError`** pinpoints the problem. @@ -350,7 +339,7 @@ If any rule is violated, a **descriptive `ValueError`** pinpoints the problem. ```python import simpy -from asyncflow.runtime.simulation_runner import SimulationRunner +from asyncflow import SimulationRunner env = simpy.Environment() runner = SimulationRunner(env=env, simulation_input=payload) @@ -372,64 +361,15 @@ results.plot_throughput(axes[0, 1]) results.plot_server_queues(axes[1, 0]) results.plot_ram_usage(axes[1, 1]) fig.tight_layout() -fig.savefig("single_server_pybuilder.png") +fig.savefig("single_server_builder.png") ``` --- -## 7) Builder vs YAML: Field Mapping - -| YAML path | Builder (Python) | -| --------------------------------------------- | ---------------------------------------------------------------- | -| `rqs_input.id` | `RqsGenerator(id=...)` | -| `rqs_input.avg_active_users.*` | `RqsGenerator(avg_active_users={...})` | -| `rqs_input.avg_request_per_minute_per_user.*` | `RqsGenerator(avg_request_per_minute_per_user={...})` | -| `rqs_input.user_sampling_window` | `RqsGenerator(user_sampling_window=...)` | -| `topology_graph.nodes.client.id` | `Client(id=...)` | -| `topology_graph.nodes.servers[*]` | `Server(id=..., server_resources={...}, endpoints=[...])` | -| `endpoint.endpoint_name` | `Endpoint(endpoint_name=...)` | -| `endpoint.steps[*]` | `Endpoint(steps=[{"kind": "...","step_operation": {...}}, ...])` | -| `topology_graph.nodes.load_balancer.*` | `LoadBalancer(id=..., algorithms=..., server_covered={...})` | -| `topology_graph.edges[*]` | `Edge(id=..., source=..., target=..., latency={...}, ...)` | -| `sim_settings.*` | `SimulationSettings(...)` | +## 7) Enums, Units & Conventions (Cheat Sheet) ---- - -## 8) Common Pitfalls & How to Avoid Them - -* **Mismatched step operations** - A CPU step must use `cpu_time`; an I/O step must use `io_waiting_time`; a RAM - step must use `necessary_ram`. Exactly **one** key per step. - -* **Edge target must be a declared node** - `source` can be external (e.g., `"rqs-1"`), but **no external ID** may ever - appear as a `target`. - -* **Load balancer coverage without edges** - If the LB covers `[srv-1, srv-2]`, you **must** add edges `lb→srv-1` and - `lb→srv-2`. - -* **Latency RV rules on edges** - `mean` must be **> 0**; if `variance` is present, it must be **≥ 0**. - -* **Fan-out rules** - If your codebase enforces “no fan-out except LB”, do not create multiple - outgoing edges from non-LB nodes. If you do allow it, set `probability` - weights so outgoing probabilities per source sum to \~1.0 (or ensure a single - edge per source). - -* **Sampling too coarse** - Large `sample_period_s` may miss short spikes. Lower it to capture bursts - (at the cost of larger time series). - ---- - -## 9) Enums, Units & Conventions (Cheat Sheet) - -* **Distributions**: `"poisson"`, `"normal"`, `"log_normal"`, `"exponential"`, - `"uniform"` -* **Node types**: fixed internally to: `generator`, `server`, `client`, - `load_balancer` +* **Distributions**: `"poisson"`, `"normal"`, `"log_normal"`, `"exponential"`, `"uniform"` +* **Node types**: fixed internally to `generator`, `server`, `client`, `load_balancer` * **Edge type**: `network_connection` * **LB algorithms**: `"round_robin"`, `"least_connection"` * **Step kinds** @@ -437,22 +377,14 @@ fig.savefig("single_server_pybuilder.png") RAM: `"ram"` I/O: `"io_task_spawn"`, `"io_llm"`, `"io_wait"`, `"io_db"`, `"io_cache"` * **Step operation keys**: `cpu_time`, `io_waiting_time`, `necessary_ram` -* **Sampled metrics**: `ready_queue_len`, `event_loop_io_sleep`, `ram_in_use`, - `edge_concurrent_connection` +* **Sampled metrics**: `ready_queue_len`, `event_loop_io_sleep`, `ram_in_use`, `edge_concurrent_connection` * **Event metrics**: `rqs_clock` (and `llm_cost` reserved for future use) **Units & ranges** -* **Time**: seconds (`cpu_time`, `io_waiting_time`, edge latency means/variance, - `total_simulation_time`, `sample_period_s`, `user_sampling_window`) +* **Time**: seconds (`cpu_time`, `io_waiting_time`, latencies, `total_simulation_time`, `sample_period_s`, `user_sampling_window`) * **RAM**: megabytes (`ram_mb`, `necessary_ram`) * **Rates**: requests/minute (`avg_request_per_minute_per_user.mean`) -* **Probabilities**: `[0.0, 1.0]` (`probability`, `dropout_rate`) -* **Bounds**: `total_simulation_time ≥ 5`, `sample_period_s ∈ [0.001, 0.1]`, - `cpu_cores ≥ 1`, `ram_mb ≥ 256`, numeric step values > 0 - ---- +* **Probabilities**: `[0.0, 1.0]` (`dropout_rate`) +* **Bounds**: `total_simulation_time ≥ 5`, `sample_period_s ∈ [0.001, 0.1]`, `cpu_cores ≥ 1`, `ram_mb ≥ 256`, numeric step values > 0 -With these patterns, you can build any topology that the YAML supports—**fully -programmatically**, with the same strong validation and clear errors on invalid -configurations. diff --git a/docs/yaml_builder.md b/docs/guides/yaml-builder.md similarity index 85% rename from docs/yaml_builder.md rename to docs/guides/yaml-builder.md index f3d22e3..113b879 100644 --- a/docs/yaml_builder.md +++ b/docs/guides/yaml-builder.md @@ -64,14 +64,12 @@ rqs_input: ### Semantics * **`avg_active_users`**: expected concurrent users (a random variable). - - * Allowed distributions: **Poisson** or **Normal**. + Allowed distributions: **Poisson** or **Normal**. * **`avg_request_per_minute_per_user`**: per-user request rate (RPM). - - * Must be **Poisson**.\* + Must be **Poisson**.\* * **`user_sampling_window`**: every N seconds the generator re-samples the active user count. -\* This reflects current sampler support (Poisson–Poisson and Gaussian–Poisson). +\* Current joint-sampler support covers Poisson–Poisson and Gaussian–Poisson. --- @@ -103,7 +101,6 @@ topology_graph: source: target: # must be a declared node latency: { mean: , distribution: , variance: } - probability: <0..1> # default 1.0 edge_type: network_connection # (enum; current default/only) dropout_rate: <0..1> # default 0.01 ``` @@ -137,7 +134,7 @@ client: * `cpu_cores`: number of worker “core tokens” available for CPU-bound step execution. * `ram_mb`: total available RAM (MB) tracked as a reservoir; steps reserve then release. -* `db_connection_pool`: optional capacity bound for DB-like steps (future-use; declared here for forward compatibility). +* `db_connection_pool`: optional capacity bound for DB-like steps (future-use). #### Load Balancer (optional) @@ -171,11 +168,11 @@ Each step must declare **exactly one** operation (`step_operation`) whose key ma **I/O-bound** (all use `io_waiting_time` as the operation key) -* `io_task_spawn` (spawns a background task, returns immediately) -* `io_llm` (LLM inference call) -* `io_wait` (generic wait, non-blocking) -* `io_db` (DB roundtrip) -* `io_cache` (cache access) +* `io_task_spawn` (spawns a background task, returns immediately) +* `io_llm` (LLM inference call) +* `io_wait` (generic wait, non-blocking) +* `io_db` (DB roundtrip) +* `io_cache` (cache access) #### Operation keys (enum `StepOperation`) @@ -223,7 +220,6 @@ endpoints: mean: 0.003 distribution: exponential # variance optional; if normal/log_normal and missing → set to mean - probability: 1.0 # optional [0..1] edge_type: network_connection dropout_rate: 0.01 # optional [0..1] ``` @@ -233,8 +229,7 @@ endpoints: * **`source`** can be an external entry point (e.g., `rqs-1`) for inbound edges. * **`target`** must always reference a declared node: client, server, or LB. * **`latency`** is a random variable; **`mean > 0`**, **`variance ≥ 0`** (if provided). -* **`probability`** is used when multiple outgoing edges exist from a node. -* **`dropout_rate`** models probabilistic packet/request loss on the link. +* **Fan-out rule**: only the **load balancer** may have multiple outgoing edges. --- @@ -270,21 +265,29 @@ AsyncFlow validates the entire payload. Key checks include: * All server IDs are unique. * Edge IDs are unique. + 2. **Node Types** * `type` fields on nodes are fixed to: `client`, `server`, `load_balancer`. + 3. **Edge referential integrity** * Every **target** is a declared node ID. * **External IDs** are allowed **only** as **sources**. If an ID appears as an external source, it must **never** appear as a target anywhere. + 4. **No self-loops** * `source != target` for every edge. + 5. **Load balancer sanity** * `server_covered` is a subset of declared servers. * There is an **edge from the LB to every covered server**. +6. **No fan-out except LB** + + * Only the load balancer may have multiple outgoing edges in the declared node set. + If any rule is violated, the simulator raises a descriptive error. --- @@ -384,9 +387,9 @@ topology_graph: latency: { mean: 0.002, distribution: exponential } } - { id: lb-srv1, source: lb-1, target: srv-1, - latency: { mean: 0.002, distribution: exponential }, probability: 0.5 } + latency: { mean: 0.002, distribution: exponential } } - { id: lb-srv2, source: lb-1, target: srv-2, - latency: { mean: 0.002, distribution: exponential }, probability: 0.5 } + latency: { mean: 0.002, distribution: exponential } } - { id: srv1-client, source: srv-1, target: client-1, latency: { mean: 0.003, distribution: exponential } } @@ -400,26 +403,7 @@ sim_settings: enabled_event_metrics: [ rqs_clock ] ``` -## 7) Common Pitfalls & How to Avoid Them - -* **Mismatched step operations** - A CPU step must use `cpu_time`; an I/O step must use `io_waiting_time`; a RAM step must use `necessary_ram`. The validator enforces **exactly one** key. - -* **Edge targets must be declared nodes** - `source` can be external (e.g., `rqs-1`), but **no external ID** may ever appear as a **target**. - -* **Load balancer coverage without edges** - If the LB declares `server_covered: [srv-1, srv-2]`, you must also add edges `lb→srv-1` and `lb→srv-2`. - -* **Latency RV rules on edges** - For edge latency, `mean` must be **> 0**; if `variance` is present, it must be **≥ 0**. - -* **Sampling too coarse** - If `sample_period_s` is large, short spikes in queues may be missed. Lower it (e.g., `0.005`) to capture fine-grained bursts—at the cost of larger time-series. - ---- - -## 8) Quick Reference (Enums) +## 7) Quick Reference (Enums) * **Distributions**: `poisson`, `normal`, `log_normal`, `exponential`, `uniform` * **Node types**: `generator`, `server`, `client`, `load_balancer` (fixed by model) @@ -435,14 +419,13 @@ sim_settings: --- -## 9) Units & Conventions +## 8) Units & Conventions * **Time**: seconds (`cpu_time`, `io_waiting_time`, latencies, `total_simulation_time`, `sample_period_s`, `user_sampling_window`) * **RAM**: megabytes (`ram_mb`, `necessary_ram`) * **Rates**: requests/minute (`avg_request_per_minute_per_user.mean`) -* **Probabilities**: `[0.0, 1.0]` (`probability`, `dropout_rate`) +* **Probabilities**: `[0.0, 1.0]` (`dropout_rate`) * **IDs**: strings; must be **unique** per category (servers, edges, LB). --- -If you stick to these rules and examples, your YAML will parse cleanly and the simulation will run with a self-consistent, strongly-validated model. diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..651a0ee --- /dev/null +++ b/docs/index.md @@ -0,0 +1,57 @@ +Here’s an updated, list-style `index.md` (in English) **without any Tutorials section** and with a clear pointer to the math details in the workload samplers. + +--- + +# AsyncFlow Documentation + +AsyncFlow is a discrete-event simulator for Python async backends (FastAPI/Uvicorn–style). It builds a **digital twin** of your service—traffic, topology, and resources—so you can measure latency, throughput, queueing, RAM, and more **before** you deploy. + +> ⚠️ The package README with `pip install` & a Quickstart will land after the first PyPI release. + +--- + + +## Public API (stable surface) + +* **[High-Level API](api/high-level.md)** — The two entry points you’ll use most: `AsyncFlow` (builder) and `SimulationRunner` (orchestrator). +* **[Components](api/components.md)** — Public Pydantic models for topology: `Client`, `Server`, `Endpoint`, `Edge`, `LoadBalancer`, `ServerResources`. +* **[Workload](api/workload.md)** — Traffic inputs: `RqsGenerator` and `RVConfig` (random variables). +* **[Settings](api/settings.md)** — Global controls: `SimulationSettings` (duration, sampling cadence, metrics). +* **[Enums](api/enums.md)** — Optional importable enums: distributions, step kinds/ops, metric names, node/edge types, LB algorithms. + +--- + +## How-to Guides + +* **[Builder Guide](guides/builder.md)** — Programmatically assemble a `SimulationPayload` in Python with validation and examples. +* **[YAML Input Guide](guides/yaml-builder.md)** — Author scenarios in YAML: exact schema, units, constraints, runnable samples. + +--- + +## Internals (design & rationale) + +> Prefer formal underpinnings? The **Workload Samplers** section includes mathematical details (compound Poisson–Poisson and Normal–Poisson processes, inverse-CDF gaps, truncated Gaussians). + +* **[Simulation Input (contract)](internals/simulation-input.md)** — The complete `SimulationPayload` schema and all validation guarantees (graph integrity, step coherence, etc.). +* **[Simulation Runner](internals/simulation-runner.md)** — Orchestrator design; build → wire → start → run flow; sequence diagrams; extensibility hooks. +* **[Runtime & Resources](internals/runtime-and-resources.md)** — How CPU/RAM/DB are modeled with SimPy containers; decoupling of runtime logic and resources. +* **Metrics** + + * **[Time-Series Architecture](internals/metrics/time-series-architecture.md)** — Registry → runtime state → collector pipeline; why the `if key in …` guard keeps extensibility with zero hot-path cost. +* **[Workload Samplers (math)](internals/workload-samplers.md)** — Formalization of traffic generators: windowed user resampling, rate construction $\Lambda = U \cdot \text{RPM}/60$, exponential inter-arrival via inverse-CDF, latency RV constraints. + +--- + +## Useful mental model + +Every run boils down to this validated input: + +```python +SimulationPayload( + rqs_input=RqsGenerator(...), # workload + topology_graph=TopologyGraph(...), # nodes & edges + sim_settings=SimulationSettings(...), +) +``` + +Build it (via **Builder** or **YAML**) and hand it to `SimulationRunner` to execute and analyze. diff --git a/docs/asyncflow-docs/metrics_to_measure.md b/docs/internals/metrics/overview.md similarity index 100% rename from docs/asyncflow-docs/metrics_to_measure.md rename to docs/internals/metrics/overview.md diff --git a/docs/asyncflow-docs/time_series_metric_architecture.md b/docs/internals/metrics/time-series-architecture.md similarity index 100% rename from docs/asyncflow-docs/time_series_metric_architecture.md rename to docs/internals/metrics/time-series-architecture.md diff --git a/docs/asyncflow-docs/runtime_and_resources.md b/docs/internals/runtime-and-resources.md similarity index 100% rename from docs/asyncflow-docs/runtime_and_resources.md rename to docs/internals/runtime-and-resources.md diff --git a/docs/asyncflow-docs/simulation_input.md b/docs/internals/simulation-input.md similarity index 100% rename from docs/asyncflow-docs/simulation_input.md rename to docs/internals/simulation-input.md diff --git a/docs/asyncflow-docs/simulation_runner.md b/docs/internals/simulation-runner.md similarity index 100% rename from docs/asyncflow-docs/simulation_runner.md rename to docs/internals/simulation-runner.md diff --git a/docs/asyncflow-docs/requests_generator.md b/docs/internals/workload-samplers.md similarity index 100% rename from docs/asyncflow-docs/requests_generator.md rename to docs/internals/workload-samplers.md diff --git a/docs/why-asyncflow.md b/docs/why-asyncflow.md new file mode 100644 index 0000000..d50d401 --- /dev/null +++ b/docs/why-asyncflow.md @@ -0,0 +1,93 @@ +# Why AsyncFlow + +> **TL;DR**: AsyncFlow is a *digital twin* of your FastAPI/Uvicorn service. It simulates traffic, async steps, and resource limits in seconds—so you can size CPU/pools/replicas and hit your latency SLOs **before** touching the cloud. + +## What it is + +* **Event-loop faithful**: Replays FastAPI-style async behavior in SimPy (parsing, CPU-bound work, I/O waits, LLM calls). +* **Resource-aware**: Models CPU cores (tokens), RAM, DB pools, and routing so you see queueing, contention, and scheduling delays. +* **Prod-style metrics**: Emits p50/p95/p99 latency, throughput, ready-queue lag, concurrency per edge/server—even estimated LLM cost. + +## What you get + +* **Numbers you can plan with**: p95, max concurrency, queue lengths, RAM usage, RPS over time. +* **Rapid “what-if” loops**: Double traffic, change cores/pools, add a replica—see the impact immediately. +* **Cheap, offline iteration**: Results in seconds, no clusters, no load-test bills. + +## 10-second example + +**Minimal scenario (YAML)** + +```yaml +# examples/data/minimal.yml +rqs_input: + id: rqs-1 + avg_active_users: { mean: 50 } # Poisson by default + avg_request_per_minute_per_user: { mean: 20 } # must be Poisson + user_sampling_window: 60 + +topology_graph: + nodes: + client: { id: client-1 } + servers: + - id: srv-1 + server_resources: { cpu_cores: 2, ram_mb: 2048 } + endpoints: + - endpoint_name: /predict + steps: + - kind: initial_parsing + step_operation: { cpu_time: 0.002 } + - kind: io_wait + step_operation: { io_waiting_time: 0.010 } + edges: + - { id: gen-client, source: rqs-1, target: client-1, + latency: { mean: 0.003, distribution: exponential } } + - { id: client-srv, source: client-1, target: srv-1, + latency: { mean: 0.003, distribution: exponential } } + - { id: srv-client, source: srv-1, target: client-1, + latency: { mean: 0.003, distribution: exponential } } + +sim_settings: + total_simulation_time: 300 + sample_period_s: 0.01 + enabled_sample_metrics: [ ready_queue_len, ram_in_use, edge_concurrent_connection ] + enabled_event_metrics: [ rqs_clock ] +``` + +**Run it (Python)** + +```python +from pathlib import Path +import simpy +from asyncflow.runtime.simulation_runner import SimulationRunner + +env = simpy.Environment() +runner = SimulationRunner.from_yaml(env=env, yaml_path=Path("examples/data/minimal.yml")) +results = runner.run() + +print(results.get_latency_stats()) # p50/p95/p99, etc. +print(results.get_throughput_series()) # (timestamps, rps) +``` + +## The mental model + +```mermaid +flowchart LR + RQS[generator] --> C[client] + C --> S[srv-1] + S --> C +``` + +* Each arrow is a **network edge** with its own latency RV. +* Server endpoints are **linear step chains**: CPU → RAM → I/O, etc. +* CPU/DB/RAM are **capacity-limited resources** → queues form under load. + +## Non-goals (by design) + +* Not a replacement for **production** load tests or packet-level network simulators. +* Not a micro-profiler; it models service times and queues, not byte-level protocol details. +* Not an auto-tuner—**you** iterate quickly with data to choose the best configuration. + +--- + +**Bottom line:** AsyncFlow turns your architecture diagram into hard numbers—p95, concurrency, queue lengths—so you can plan capacity, de-risk launches, and explain trade-offs with evidence, not guesswork. diff --git a/examples/single_server_builder.png b/examples/single_server_builder.png new file mode 100644 index 0000000000000000000000000000000000000000..2a4d21e5fdb8b24e6848567a33eb5517c50b50fd GIT binary patch literal 166241 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�y0{00 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 PorY}?< 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 E0K43E82|tP literal 0 HcmV?d00001 diff --git a/examples/single_server_pybuilder.py b/examples/single_server_pybuilder.py index c0be9ee..cd92121 100644 --- a/examples/single_server_pybuilder.py +++ b/examples/single_server_pybuilder.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """ Didactic example: build and run a AsyncFlow scenario **without** YAML, -using the 'pybuilder' (AsyncFlow) to assemble the SimulationPayload. +using the 'builder' (AsyncFlow) to assemble the SimulationPayload. Scenario reproduced (same as the previous YAML): generator ──edge──> client ──edge──> server ──edge──> client @@ -24,7 +24,7 @@ 5) (Optional) Visualize the topology with Matplotlib. Run: - python run_with_pybuilder.py + python run_with_builder.py """ from __future__ import annotations @@ -36,11 +36,11 @@ import simpy # ── AsyncFlow domain imports ─────────────────────────────────────────────────── -from asyncflow.pybuilder.input_builder import AsyncFlow +from asyncflow.builder.asyncflow_builder import AsyncFlow from asyncflow.runtime.simulation_runner import SimulationRunner from asyncflow.metrics.analyzer import ResultsAnalyzer from asyncflow.schemas.payload import SimulationPayload -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator from asyncflow.schemas.settings.simulation import SimulationSettings from asyncflow.schemas.topology.endpoint import Endpoint from asyncflow.schemas.topology.nodes import ( @@ -160,9 +160,9 @@ def run_sanity_checks( # ───────────────────────────────────────────────────────────── -# Build the same scenario via AsyncFlow (pybuilder) +# Build the same scenario via AsyncFlow (builder) # ───────────────────────────────────────────────────────────── -def build_payload_with_pybuilder() -> SimulationPayload: +def build_payload_with_builder() -> SimulationPayload: """ Construct the SimulationPayload programmatically using the builder. @@ -255,11 +255,11 @@ def build_payload_with_pybuilder() -> SimulationPayload: def main() -> None: """ Build → wire → run the simulation, then print diagnostics. - Mirrors run_from_yaml.py but uses the pybuilder to construct the input. + Mirrors run_from_yaml.py but uses the builder to construct the input. Also saves a 2x2 plot figure (latency, throughput, server queues, RAM). """ env = simpy.Environment() - payload = build_payload_with_pybuilder() + payload = build_payload_with_builder() runner = SimulationRunner(env=env, simulation_input=payload) results: ResultsAnalyzer = runner.run() @@ -283,7 +283,7 @@ def main() -> None: results.plot_ram_usage(axes[1, 1]) fig.tight_layout() - out_path = Path(__file__).parent / "single_server_pybuilder.png" + out_path = Path(__file__).parent / "single_server_builder.png" fig.savefig(out_path) print(f"\n🖼️ Plots saved to: {out_path}") except Exception as exc: # Matplotlib not installed or plotting failed diff --git a/examples/single_server_yml.png b/examples/single_server_yml.png index 560a4b3e3eabe2e0b8408c3e322656deb770d7af..76c21154dc9eed6dfb7d453c1e103dc40e659502 100644 GIT binary patch literal 166693 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 SVxlD|I5gF+s1{zb4*U;N>cpo2 diff --git a/src/asyncflow/__init__.py b/src/asyncflow/__init__.py index 76e9b77..5bdbdea 100644 --- a/src/asyncflow/__init__.py +++ b/src/asyncflow/__init__.py @@ -1,19 +1,7 @@ -"""Public modules""" -from .schemas.common.random_variables import RVConfig -from .schemas.payload import SimulationPayload -from .schemas.settings.simulation import SimulationSettings -from .schemas.topology.edges import Edge -from .schemas.topology.endpoint import Endpoint -from .schemas.topology.nodes import Client, Server -from .schemas.workload.generator import RqsGenerator +"""Public facade for high-level API.""" +from __future__ import annotations -__all__ = [ - "Client", - "Edge", - "Endpoint", - "RVConfig", - "RqsGenerator", - "Server", - "SimulationPayload", - "SimulationSettings", -] +from asyncflow.builder.asyncflow_builder import AsyncFlow +from asyncflow.runtime.simulation_runner import SimulationRunner + +__all__ = ["AsyncFlow", "SimulationRunner"] diff --git a/src/asyncflow/pybuilder/input_builder.py b/src/asyncflow/builder/asyncflow_builder.py similarity index 98% rename from src/asyncflow/pybuilder/input_builder.py rename to src/asyncflow/builder/asyncflow_builder.py index 77977cc..f6d2cea 100644 --- a/src/asyncflow/pybuilder/input_builder.py +++ b/src/asyncflow/builder/asyncflow_builder.py @@ -14,7 +14,7 @@ Server, TopologyNodes, ) -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator class AsyncFlow: diff --git a/src/asyncflow/components/__init__.py b/src/asyncflow/components/__init__.py index 38ead63..774a77f 100644 --- a/src/asyncflow/components/__init__.py +++ b/src/asyncflow/components/__init__.py @@ -1,17 +1,15 @@ -"""Public Pydantic components (leaf schemas) for scenario building.""" -from asyncflow.schemas.common.random_variables import RVConfig -from asyncflow.schemas.settings.simulation import SimulationSettings +"""Public components: re-exports Pydantic leaf schemas (topology).""" +from __future__ import annotations + from asyncflow.schemas.topology.edges import Edge from asyncflow.schemas.topology.endpoint import Endpoint -from asyncflow.schemas.topology.nodes import Client, Server -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.topology.nodes import ( + Client, + LoadBalancer, + Server, + ServerResources, +) + +__all__ = ["Client", "Edge", "Endpoint", "LoadBalancer", "Server", "ServerResources"] + -__all__ = [ - "Client", - "Edge", - "Endpoint", - "RVConfig", - "RqsGenerator", - "Server", - "SimulationSettings", -] diff --git a/src/asyncflow/config/__init__.py b/src/asyncflow/config/__init__.py deleted file mode 100644 index 255bf0d..0000000 --- a/src/asyncflow/config/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Configuration modules and settings.""" diff --git a/src/asyncflow/enums/__init__.py b/src/asyncflow/enums/__init__.py index 3fd98cb..a07a18f 100644 --- a/src/asyncflow/enums/__init__.py +++ b/src/asyncflow/enums/__init__.py @@ -1,8 +1,23 @@ """Public enums used in scenario definitions.""" + from asyncflow.config.constants import ( Distribution, + EndpointStepCPU, + EndpointStepIO, + EndpointStepRAM, EventMetricName, + LbAlgorithmsName, SampledMetricName, + StepOperation, ) -__all__ = ["Distribution", "EventMetricName", "SampledMetricName"] +__all__ = [ + "Distribution", + "EndpointStepCPU", + "EndpointStepIO", + "EndpointStepRAM", + "EventMetricName", + "LbAlgorithmsName", + "SampledMetricName", + "StepOperation", +] diff --git a/src/asyncflow/resources/__init__.py b/src/asyncflow/resources/__init__.py deleted file mode 100644 index 69884c1..0000000 --- a/src/asyncflow/resources/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""python package for resource registry""" diff --git a/src/asyncflow/runtime/__init__.py b/src/asyncflow/runtime/__init__.py deleted file mode 100644 index fdc562a..0000000 --- a/src/asyncflow/runtime/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""module for the runtime folder""" diff --git a/src/asyncflow/runtime/actors/load_balancer.py b/src/asyncflow/runtime/actors/load_balancer.py index 8a426cc..498fb18 100644 --- a/src/asyncflow/runtime/actors/load_balancer.py +++ b/src/asyncflow/runtime/actors/load_balancer.py @@ -7,7 +7,7 @@ from asyncflow.config.constants import LbAlgorithmsName, SystemNodes from asyncflow.runtime.actors.edge import EdgeRuntime -from asyncflow.runtime.actors.helpers.lb_algorithms import ( +from asyncflow.runtime.actors.routing.lb_algorithms import ( least_connections, round_robin, ) diff --git a/src/asyncflow/runtime/actors/helpers/lb_algorithms.py b/src/asyncflow/runtime/actors/routing/lb_algorithms.py similarity index 100% rename from src/asyncflow/runtime/actors/helpers/lb_algorithms.py rename to src/asyncflow/runtime/actors/routing/lb_algorithms.py diff --git a/src/asyncflow/runtime/actors/rqs_generator.py b/src/asyncflow/runtime/actors/rqs_generator.py index 702fe78..1b67213 100644 --- a/src/asyncflow/runtime/actors/rqs_generator.py +++ b/src/asyncflow/runtime/actors/rqs_generator.py @@ -22,7 +22,7 @@ from asyncflow.runtime.actors.edge import EdgeRuntime from asyncflow.schemas.settings.simulation import SimulationSettings - from asyncflow.schemas.workload.generator import RqsGenerator + from asyncflow.schemas.workload.rqs_generator import RqsGenerator class RqsGeneratorRuntime: diff --git a/src/asyncflow/runtime/simulation_runner.py b/src/asyncflow/runtime/simulation_runner.py index 1bd1c77..5d112ae 100644 --- a/src/asyncflow/runtime/simulation_runner.py +++ b/src/asyncflow/runtime/simulation_runner.py @@ -27,7 +27,7 @@ LoadBalancer, Server, ) - from asyncflow.schemas.workload.generator import RqsGenerator + from asyncflow.schemas.workload.rqs_generator import RqsGenerator # --- PROTOCOL DEFINITION --- # This is the contract that all runtime actors must follow. diff --git a/src/asyncflow/samplers/gaussian_poisson.py b/src/asyncflow/samplers/gaussian_poisson.py index c418184..b96eca5 100644 --- a/src/asyncflow/samplers/gaussian_poisson.py +++ b/src/asyncflow/samplers/gaussian_poisson.py @@ -17,7 +17,7 @@ uniform_variable_generator, ) from asyncflow.schemas.settings.simulation import SimulationSettings -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator def gaussian_poisson_sampling( diff --git a/src/asyncflow/samplers/poisson_poisson.py b/src/asyncflow/samplers/poisson_poisson.py index 13d72ff..ea7a4fb 100644 --- a/src/asyncflow/samplers/poisson_poisson.py +++ b/src/asyncflow/samplers/poisson_poisson.py @@ -14,7 +14,7 @@ uniform_variable_generator, ) from asyncflow.schemas.settings.simulation import SimulationSettings -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator def poisson_poisson_sampling( diff --git a/src/asyncflow/schemas/payload.py b/src/asyncflow/schemas/payload.py index 4ab4363..3c889e4 100644 --- a/src/asyncflow/schemas/payload.py +++ b/src/asyncflow/schemas/payload.py @@ -4,7 +4,7 @@ from asyncflow.schemas.settings.simulation import SimulationSettings from asyncflow.schemas.topology.graph import TopologyGraph -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator class SimulationPayload(BaseModel): diff --git a/src/asyncflow/schemas/settings/__init__.py b/src/asyncflow/schemas/settings/__init__.py deleted file mode 100644 index 0f122c9..0000000 --- a/src/asyncflow/schemas/settings/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Configuration models and utilities for global simulation settings.""" diff --git a/src/asyncflow/schemas/topology/__init__.py b/src/asyncflow/schemas/topology/__init__.py deleted file mode 100644 index 5e20391..0000000 --- a/src/asyncflow/schemas/topology/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Schemas and helpers for the system topology (nodes, edges, graph).""" diff --git a/src/asyncflow/schemas/workload/__init__.py b/src/asyncflow/schemas/workload/__init__.py deleted file mode 100644 index b5efce2..0000000 --- a/src/asyncflow/schemas/workload/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Schemas for workload generation (traffic generator and distributions).""" diff --git a/src/asyncflow/schemas/workload/generator.py b/src/asyncflow/schemas/workload/rqs_generator.py similarity index 100% rename from src/asyncflow/schemas/workload/generator.py rename to src/asyncflow/schemas/workload/rqs_generator.py diff --git a/src/asyncflow/settings/__init__.py b/src/asyncflow/settings/__init__.py new file mode 100644 index 0000000..4f4031c --- /dev/null +++ b/src/asyncflow/settings/__init__.py @@ -0,0 +1,6 @@ +"""Public settings API.""" +from __future__ import annotations + +from asyncflow.schemas.settings.simulation import SimulationSettings + +__all__ = ["SimulationSettings"] diff --git a/src/asyncflow/workload/__init__.py b/src/asyncflow/workload/__init__.py new file mode 100644 index 0000000..c4b8735 --- /dev/null +++ b/src/asyncflow/workload/__init__.py @@ -0,0 +1,7 @@ +"""Public workload API.""" +from __future__ import annotations + +from asyncflow.schemas.common.random_variables import RVConfig +from asyncflow.schemas.workload.rqs_generator import RqsGenerator + +__all__ = ["RVConfig", "RqsGenerator"] diff --git a/tests/conftest.py b/tests/conftest.py index ff416ba..80955f0 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -21,7 +21,7 @@ Client, TopologyNodes, ) -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator # ============================================================================ # STANDARD CONFIGURATION FOR INPUT VARIABLES diff --git a/tests/integration/minimal/conftest.py b/tests/integration/minimal/conftest.py index f583043..f29bf49 100644 --- a/tests/integration/minimal/conftest.py +++ b/tests/integration/minimal/conftest.py @@ -17,7 +17,7 @@ from asyncflow.config.constants import TimeDefaults from asyncflow.runtime.simulation_runner import SimulationRunner from asyncflow.schemas.common.random_variables import RVConfig -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator if TYPE_CHECKING: from asyncflow.schemas.payload import SimulationPayload diff --git a/tests/unit/pybuilder/test_input_builder.py b/tests/unit/pybuilder/test_input_builder.py index 587d5f7..fa49fda 100644 --- a/tests/unit/pybuilder/test_input_builder.py +++ b/tests/unit/pybuilder/test_input_builder.py @@ -13,13 +13,13 @@ import pytest -from asyncflow.pybuilder.input_builder import AsyncFlow +from asyncflow.builder.asyncflow_builder import AsyncFlow from asyncflow.schemas.payload import SimulationPayload from asyncflow.schemas.settings.simulation import SimulationSettings from asyncflow.schemas.topology.edges import Edge from asyncflow.schemas.topology.endpoint import Endpoint from asyncflow.schemas.topology.nodes import Client, Server -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator # --------------------------------------------------------------------------- # diff --git a/tests/unit/runtime/actors/test_rqs_generator.py b/tests/unit/runtime/actors/test_rqs_generator.py index 08e8f88..fef5987 100644 --- a/tests/unit/runtime/actors/test_rqs_generator.py +++ b/tests/unit/runtime/actors/test_rqs_generator.py @@ -18,7 +18,7 @@ from asyncflow.runtime.actors.edge import EdgeRuntime from asyncflow.runtime.rqs_state import RequestState from asyncflow.schemas.settings.simulation import SimulationSettings - from asyncflow.schemas.workload.generator import RqsGenerator + from asyncflow.schemas.workload.rqs_generator import RqsGenerator import importlib diff --git a/tests/unit/samplers/test_gaussian_poisson.py b/tests/unit/samplers/test_gaussian_poisson.py index 0818fcc..657fae9 100644 --- a/tests/unit/samplers/test_gaussian_poisson.py +++ b/tests/unit/samplers/test_gaussian_poisson.py @@ -14,7 +14,7 @@ gaussian_poisson_sampling, ) from asyncflow.schemas.common.random_variables import RVConfig -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator if TYPE_CHECKING: diff --git a/tests/unit/samplers/test_poisson_poisson.py b/tests/unit/samplers/test_poisson_poisson.py index 477ed34..c5d4a18 100644 --- a/tests/unit/samplers/test_poisson_poisson.py +++ b/tests/unit/samplers/test_poisson_poisson.py @@ -13,7 +13,7 @@ from asyncflow.config.constants import TimeDefaults from asyncflow.samplers.poisson_poisson import poisson_poisson_sampling from asyncflow.schemas.common.random_variables import RVConfig -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator if TYPE_CHECKING: diff --git a/tests/unit/schemas/test_generator.py b/tests/unit/schemas/test_generator.py index 6992611..608adc4 100644 --- a/tests/unit/schemas/test_generator.py +++ b/tests/unit/schemas/test_generator.py @@ -7,7 +7,7 @@ from asyncflow.config.constants import Distribution, TimeDefaults from asyncflow.schemas.common.random_variables import RVConfig from asyncflow.schemas.settings.simulation import SimulationSettings -from asyncflow.schemas.workload.generator import RqsGenerator +from asyncflow.schemas.workload.rqs_generator import RqsGenerator # --------------------------------------------------------------------------- # # RVCONFIG #

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