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.
164 lines
3.6 KiB
164 lines
3.6 KiB
{ |
|
"nodes": [ |
|
{ |
|
"id": "webserver-1", |
|
"type": "webserver", |
|
"position": { "x": 100, "y": 200 }, |
|
"props": { |
|
"label": "E-commerce API", |
|
"rpsCapacity": 200 |
|
} |
|
}, |
|
{ |
|
"id": "microservice-1", |
|
"type": "microservice", |
|
"position": { "x": 300, "y": 200 }, |
|
"props": { |
|
"label": "Payment Service", |
|
"instanceCount": 2, |
|
"cpu": 4, |
|
"ramGb": 8, |
|
"rpsCapacity": 100, |
|
"scalingStrategy": "auto" |
|
} |
|
}, |
|
{ |
|
"id": "stripe-service", |
|
"type": "third party service", |
|
"position": { "x": 500, "y": 150 }, |
|
"props": { |
|
"label": "Stripe Payments", |
|
"provider": "Stripe", |
|
"latency": 180 |
|
} |
|
}, |
|
{ |
|
"id": "twilio-service", |
|
"type": "third party service", |
|
"position": { "x": 500, "y": 250 }, |
|
"props": { |
|
"label": "SMS Notifications", |
|
"provider": "Twilio", |
|
"latency": 250 |
|
} |
|
}, |
|
{ |
|
"id": "microservice-2", |
|
"type": "microservice", |
|
"position": { "x": 300, "y": 350 }, |
|
"props": { |
|
"label": "Notification Service", |
|
"instanceCount": 1, |
|
"cpu": 2, |
|
"ramGb": 4, |
|
"rpsCapacity": 50, |
|
"scalingStrategy": "manual" |
|
} |
|
}, |
|
{ |
|
"id": "sendgrid-service", |
|
"type": "third party service", |
|
"position": { "x": 500, "y": 350 }, |
|
"props": { |
|
"label": "Email Service", |
|
"provider": "SendGrid", |
|
"latency": 200 |
|
} |
|
}, |
|
{ |
|
"id": "slack-service", |
|
"type": "third party service", |
|
"position": { "x": 500, "y": 450 }, |
|
"props": { |
|
"label": "Slack Alerts", |
|
"provider": "Slack", |
|
"latency": 300 |
|
} |
|
}, |
|
{ |
|
"id": "monitor-1", |
|
"type": "monitoring/alerting", |
|
"position": { "x": 700, "y": 200 }, |
|
"props": { |
|
"label": "System Monitor", |
|
"tool": "Datadog", |
|
"alertMetric": "latency", |
|
"thresholdValue": 500, |
|
"thresholdUnit": "ms" |
|
} |
|
}, |
|
{ |
|
"id": "db-1", |
|
"type": "database", |
|
"position": { "x": 700, "y": 350 }, |
|
"props": { |
|
"label": "Transaction DB", |
|
"replication": 2, |
|
"maxRPS": 300, |
|
"baseLatencyMs": 20 |
|
} |
|
} |
|
], |
|
"connections": [ |
|
{ |
|
"source": "webserver-1", |
|
"target": "microservice-1", |
|
"label": "Payment Requests", |
|
"protocol": "https" |
|
}, |
|
{ |
|
"source": "microservice-1", |
|
"target": "stripe-service", |
|
"label": "Process Payment", |
|
"protocol": "https" |
|
}, |
|
{ |
|
"source": "microservice-1", |
|
"target": "twilio-service", |
|
"label": "SMS Confirmation", |
|
"protocol": "https" |
|
}, |
|
{ |
|
"source": "webserver-1", |
|
"target": "microservice-2", |
|
"label": "Notification Requests", |
|
"protocol": "https" |
|
}, |
|
{ |
|
"source": "microservice-2", |
|
"target": "sendgrid-service", |
|
"label": "Send Email", |
|
"protocol": "https" |
|
}, |
|
{ |
|
"source": "microservice-2", |
|
"target": "slack-service", |
|
"label": "Admin Alerts", |
|
"protocol": "https" |
|
}, |
|
{ |
|
"source": "stripe-service", |
|
"target": "monitor-1", |
|
"label": "Payment Metrics", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "twilio-service", |
|
"target": "monitor-1", |
|
"label": "SMS Metrics", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "sendgrid-service", |
|
"target": "monitor-1", |
|
"label": "Email Metrics", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "monitor-1", |
|
"target": "db-1", |
|
"label": "Store Metrics", |
|
"protocol": "tcp" |
|
} |
|
] |
|
}
|
|
|