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.
220 lines
4.2 KiB
220 lines
4.2 KiB
{ |
|
"nodes": [ |
|
{ |
|
"id": "node-1", |
|
"type": "loadBalancer", |
|
"position": { |
|
"x": -4, |
|
"y": 0 |
|
}, |
|
"props": { |
|
"label": "Load Balancer", |
|
"algorithm": "round-robin" |
|
} |
|
}, |
|
{ |
|
"id": "node-2", |
|
"type": "webserver", |
|
"position": { |
|
"x": -1, |
|
"y": 0 |
|
}, |
|
"props": { |
|
"label": "Web Server", |
|
"instanceSize": "medium" |
|
} |
|
}, |
|
{ |
|
"id": "node-3", |
|
"type": "database", |
|
"position": { |
|
"x": 177, |
|
"y": -176 |
|
}, |
|
"props": { |
|
"label": "Database", |
|
"replication": 1 |
|
} |
|
}, |
|
{ |
|
"id": "node-4", |
|
"type": "cache", |
|
"position": { |
|
"x": 204, |
|
"y": -78 |
|
}, |
|
"props": { |
|
"label": "Cache", |
|
"cacheTTL": 60, |
|
"maxEntries": 100000, |
|
"evictionPolicy": "LRU" |
|
} |
|
}, |
|
{ |
|
"id": "node-5", |
|
"type": "messageQueue", |
|
"position": { |
|
"x": 0, |
|
"y": 0 |
|
}, |
|
"props": { |
|
"label": "MQ", |
|
"maxSize": 10000, |
|
"retentionSeconds": 600 |
|
} |
|
}, |
|
{ |
|
"id": "node-6", |
|
"type": "cdn", |
|
"position": { |
|
"x": 20, |
|
"y": 69 |
|
}, |
|
"props": { |
|
"label": "CDN", |
|
"ttl": 3600, |
|
"geoReplication": "global", |
|
"cachingStrategy": "cache-first", |
|
"compression": "brotli", |
|
"http2": "enabled" |
|
} |
|
}, |
|
{ |
|
"id": "node-7", |
|
"type": "microservice", |
|
"position": { |
|
"x": 0, |
|
"y": 0 |
|
}, |
|
"props": { |
|
"label": "Service", |
|
"instanceCount": 3, |
|
"instanceSize": "medium", |
|
"scalingStrategy": "auto", |
|
"apiVersion": "v1" |
|
} |
|
}, |
|
{ |
|
"id": "node-8", |
|
"type": "data pipeline", |
|
"position": { |
|
"x": -453, |
|
"y": -121 |
|
}, |
|
"props": { |
|
"label": "pipeline", |
|
"batchSize": 500, |
|
"transformation": "map" |
|
} |
|
}, |
|
{ |
|
"id": "node-9", |
|
"type": "monitoring/alerting", |
|
"position": { |
|
"x": 0, |
|
"y": 0 |
|
}, |
|
"props": { |
|
"label": "monitor", |
|
"tool": "Prometheus", |
|
"alertThreshold": 80 |
|
} |
|
}, |
|
{ |
|
"id": "node-10", |
|
"type": "third party service", |
|
"position": { |
|
"x": 0, |
|
"y": 0 |
|
}, |
|
"props": { |
|
"label": "third party service", |
|
"provider": "Stripe", |
|
"latency": 200 |
|
} |
|
} |
|
], |
|
"connections": [ |
|
{ |
|
"source": "node-1", |
|
"target": "node-2", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
}, |
|
{ |
|
"source": "node-2", |
|
"target": "node-3", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
}, |
|
{ |
|
"source": "node-3", |
|
"target": "node-4", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
}, |
|
{ |
|
"source": "node-4", |
|
"target": "node-5", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
}, |
|
{ |
|
"source": "node-5", |
|
"target": "node-6", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
}, |
|
{ |
|
"source": "node-6", |
|
"target": "node-7", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
}, |
|
{ |
|
"source": "node-8", |
|
"target": "node-7", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
}, |
|
{ |
|
"source": "node-8", |
|
"target": "node-10", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
}, |
|
{ |
|
"source": "node-10", |
|
"target": "node-9", |
|
"label": "Read traffic", |
|
"direction": "forward", |
|
"protocol": "HTTP", |
|
"tls": false, |
|
"capacity": 1000 |
|
} |
|
] |
|
}
|
|
|