10 changed files with 307 additions and 16 deletions
@ -1 +1,220 @@ |
|||||||
{"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-0","target":"node-1","label":"Read traffic","direction":"forward","protocol":"HTTP","tls":false,"capacity":1000},{"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},{"source":"node-9","target":"node-0","label":"Read traffic","direction":"forward","protocol":"HTTP","tls":false,"capacity":1000}]} |
{ |
||||||
|
"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 |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
|||||||
@ -0,0 +1,33 @@ |
|||||||
|
{ |
||||||
|
"nodes": [ |
||||||
|
{ |
||||||
|
"id": "node-1", |
||||||
|
"type": "loadBalancer", |
||||||
|
"position": { "x": 0, "y": 0 }, |
||||||
|
"props": { |
||||||
|
"label": "LB", |
||||||
|
"algorithm": "round-robin" |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
"id": "node-2", |
||||||
|
"type": "webserver", |
||||||
|
"position": { "x": 100, "y": 0 }, |
||||||
|
"props": { |
||||||
|
"label": "Web Server", |
||||||
|
"instanceSize": "medium" |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"connections": [ |
||||||
|
{ |
||||||
|
"source": "node-1", |
||||||
|
"target": "node-2", |
||||||
|
"label": "Traffic", |
||||||
|
"direction": "forward", |
||||||
|
"protocol": "HTTP", |
||||||
|
"tls": false, |
||||||
|
"capacity": 1000 |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
Loading…
Reference in new issue