You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

96 lines
2.0 KiB

{
"nodes": [
{
"id": "webserver-1",
"type": "webserver",
"position": { "x": 100, "y": 200 },
"props": {
"label": "API Gateway",
"rpsCapacity": 200
}
},
{
"id": "lb-1",
"type": "loadbalancer",
"position": { "x": 300, "y": 200 },
"props": {
"label": "API Gateway",
"algorithm": "round-robin"
}
},
{
"id": "microservice-1",
"type": "microservice",
"position": { "x": 500, "y": 150 },
"props": {
"label": "User Service",
"instanceCount": 3,
"cpu": 4,
"ramGb": 8,
"rpsCapacity": 100,
"monthlyUsd": 150,
"scalingStrategy": "auto",
"apiVersion": "v2"
}
},
{
"id": "microservice-2",
"type": "microservice",
"position": { "x": 500, "y": 250 },
"props": {
"label": "Order Service",
"instanceCount": 2,
"cpu": 2,
"ramGb": 4,
"rpsCapacity": 80,
"monthlyUsd": 90,
"scalingStrategy": "manual",
"apiVersion": "v1"
}
},
{
"id": "db-1",
"type": "database",
"position": { "x": 700, "y": 200 },
"props": {
"label": "PostgreSQL",
"replication": 2,
"maxRPS": 500,
"baseLatencyMs": 15
}
}
],
"connections": [
{
"source": "webserver-1",
"target": "lb-1",
"label": "HTTPS Requests",
"protocol": "https",
"tls": true
},
{
"source": "lb-1",
"target": "microservice-1",
"label": "User API",
"protocol": "http"
},
{
"source": "lb-1",
"target": "microservice-2",
"label": "Order API",
"protocol": "http"
},
{
"source": "microservice-1",
"target": "db-1",
"label": "User Queries",
"protocol": "tcp"
},
{
"source": "microservice-2",
"target": "db-1",
"label": "Order Queries",
"protocol": "tcp"
}
]
}