Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fchauvel/mad
Microservice Architectures Dynamics
https://github.com/fchauvel/mad
Last synced: 2 months ago
JSON representation
Microservice Architectures Dynamics
- Host: GitHub
- URL: https://github.com/fchauvel/mad
- Owner: fchauvel
- License: gpl-3.0
- Created: 2015-11-01T09:07:29.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-26T19:54:13.000Z (almost 2 years ago)
- Last Synced: 2024-10-05T21:06:51.004Z (3 months ago)
- Language: Python
- Size: 372 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# MAD — Microservices Architectures Dynamics
[![shields.io](https://img.shields.io/pypi/v/MAD.svg)](https://pypi.python.org/pypi/MAD)
[![shields.io](https://img.shields.io/pypi/l/MAD.svg)](http://www.gnu.org/licenses/gpl-3.0.en.html)
[![codeship.io](https://img.shields.io/codeship/68381610-6386-0133-dbbe-16f6a7024b95.svg)](https://codeship.com/projects/112817)
[![codecov.io](https://img.shields.io/codecov/c/github/fchauvel/MAD/master.svg)](https://codecov.io/github/fchauvel/MAD)
[![PyPI](https://img.shields.io/pypi/dm/MAD.svg)](http://pypi-ranking.info/module/MAD)MAD is a discrete event simulator to study the dynamics of microservices architectures where each service encompasses
several defensive mechanisms, such as timeout, autoscaling, throttling, back-off protocols, etc.See the [official documentation](http://www.pythonhosted.org/MAD).
## TODO
* Features
* Services
* Monitoring
* Per operation
* emission rate
* current timeout
* current back-off delay per 'partner'
* incoming/outgoing rejection rate/count
* Priority / Service differentiation
* An algorithm that ensures fairness
* Autoscaling
* Delay before workers gets active,
* Expose the metrics in use
* Actions
* Probabilistic switch statement, a la 'choice'
* Clients
* Multiple clients
* Workload patterns
* Bug fixes
* Examples
* SensApp example
* Grafterizer example
* Example for The Architecture Conference .NET microservice
* Tests
* Test shutting down workers, they shall first complete there current task
* Test that the simulation call back the display
* Test for retry in an action list in the parser
* Test timeouts that are activated after the call to send request (what happen if the request is assign to a worker
right away?)
* Refactorings
* A test factory shared among simulation test
* Move the creation of workers from Service to the autoscaling strategy
* Merge test_evaluation and test_interpreter
* Merge throttling and Task pool into Bounded task pool
* Autoscaling should read statistics from the monitor
* Monitor should also account for worker counts
* Events pushed by each state machine should be an enumeration (data-driven)
* Concepts ideas
* Caching
* Server side Proxy
* Client side proxies / circuit breaker?
* Message-Queue/PubSub?
* Deamons as processes that would run periodically within a service
## NEXT RELEASE CHANGE LOG* Features
* Copy the model into the output directory
* Bug Fixes
* Fix worker that are not released when the triggering request as been
discarded and that the emitted request succeed
* Fix rejection that did not fail the 'parent' request
* Refactorings
* Split acceptance tests into several files (commons, nominals, errors)