Skip to content

ArchitectureDescription

LWagner edited this page May 9, 2022 · 3 revisions

MiSim architecture descriptions consist out of a list of microservice descriptions and and an optional definition of default Network latency.

{
    "network_latency": <Distribution Experssion>,
    "microservices": [
        List<Microservice Description>
    ]
}

Distribution Expression

To model distirbutions MiSim supports a simple distribution expression. It shapes a normal distirbutions with a mean and a standard deviation. Optionally, the left and right deviation can be specified seperately.

Type Formula Example
Constant <const> "42"
Normal dDistribution <mean>+-<std> "42+-3"
Skewed Distribution <mean>+<leftDeviation>-<rightDeviation> "42+1-3"

Microservice Description

Property Description
name The name of the microservice
instances The number of starting instances of the microservice
capacity Capacity of each instance
loadbalancer_strategy The load balancing strategies to use.*
patterns List of instance owned pattern descriptions that should be used.*
s_patterns List of service owned pattern descriptions that should be used.*
operations List of operation descriptions

* See Supported Resilience Mechanisms.

Example

{
    "name": "MyMicroservice",
    "instances": 1,
    "capacity": 1000,
    "loadbalancer_strategy": "round_robin",
    "patterns": [
        List<Pattern Description>
    ],
    "s_patterns": [
        List<Pattern Description>
    ],
    "operations": [
        List<Operation Description>
    ]
}

Operation Description

Property Description
name The name of the operation.
demand The computational demand of the operation.
dependencies List of Dependencie descriptions.

Example

{
    "name": "MyOperation",
    "demand": 1000,
    "dependencies": [
        List<Dependency Description>
    ]
}

Dependency Description

Property Description
service Target service name
operation Target operation name
proability Probability of the dependency to be needed.
custom_delay Custom latency to be used. Overrides default network latency

Service and operation name can also be combined as fully qualifed name in the operation property, e.g. "service.operation".

Example

{
    "service": "MyService",
    "operation": "MyOperation",
    "probability": 0.5,
    "custom_delay": <Distribution Expression>
}
Clone this wiki locally