Skip to content

Future Work

L. Wagner edited this page Nov 18, 2022 · 6 revisions

This page contains a list of potential future projects and extensions for MiSim. These are rather high-level targets for future releases.

Features

Status Name Description
Done ✔️
(3.1+, external)
Kubernetes Orchestration see here
Done ✔️ (3.1+) Branching of Requests Request dependencies can now branch between multiple targets
In Progress ⏳ (target 3.3+) Asynchronous Output Writing Instead of saving all generated output data in memory, it is now written continuously and asynchronously. This hugely improves performance and allows for data analysis even when the simulation should crash.
In Progress ⏳ Testing Framework Improvements Currently, the testing framework mainly supports unit testing and a bit of E2E testing (e.g. Reproducibility). The new framework aims to add the option to do integration test by supplying MiSimModel and Experiment Mocks that can be used to acces the inner workings of the simulation during testing.
In Progress ⏳ MTL/LTL Input Support Complex architecture or experiment behaviour can be described by MTL or LTL formulars.
Idea 💡 Simulate Asynchronous Communication Currently MiSim only simulates synchronous communication and that also in a non-optimal way.
Idea 💡 CPU performance degradation The more load/heat a CPU experiences, the slower it gets. Goes along with boosting behavior.
Idea 💡 Modelling I/O loads Improve the resource modelling to simulate I/O tasks.
Idea 💡 Request Paths Define concrete Paths of specific requests.
Idea 💡 Fix Dependency Graph see Issue 40
Idea 💡 Selectable Output Metrics Instead of outputting all Metrics, just output the ones needed.
Idea 💡 Cold Start Behavior

Resilience Mechanisms

Status Name Description
Done ✔️ Autoscaling
Done ✔️ Circuit Breaker
Done ✔️ Retry
Done ✔️ Load Balancer
Idea 💡 Rate Limiter
Idea 💡 Throttling May makes sense in combination with modelling CPU performance degradation
Idea 💡 Simulating Caching
Idea 💡 Bulkheads
Idea 💡 Fallback

Status Legend

Label Meaning
Done ✔️ This was successfully implemented and released.
In Progress ⏳ This features is currently being developed.
Cancelled ❌ The development of these features was cancelled or it was rejected during a discussion.
Idea 💡 Potential further extension.
Clone this wiki locally