{ "nodes": [ { "id": "webserver-1", "type": "webserver", "position": { "x": 100, "y": 200 }, "props": { "label": "Web Server", "rpsCapacity": 100 } }, { "id": "monitor-1", "type": "monitoring/alerting", "position": { "x": 300, "y": 200 }, "props": { "label": "Prometheus Monitor", "tool": "Prometheus", "alertMetric": "latency", "thresholdValue": 80, "thresholdUnit": "ms" } }, { "id": "lb-1", "type": "loadbalancer", "position": { "x": 500, "y": 200 }, "props": { "label": "Load Balancer", "algorithm": "round-robin" } }, { "id": "microservice-1", "type": "microservice", "position": { "x": 700, "y": 150 }, "props": { "label": "User Service", "instanceCount": 2, "cpu": 2, "ramGb": 4, "rpsCapacity": 50, "scalingStrategy": "auto" } }, { "id": "microservice-2", "type": "microservice", "position": { "x": 700, "y": 250 }, "props": { "label": "Order Service", "instanceCount": 1, "cpu": 1, "ramGb": 2, "rpsCapacity": 30, "scalingStrategy": "manual" } }, { "id": "monitor-2", "type": "monitoring/alerting", "position": { "x": 900, "y": 200 }, "props": { "label": "Error Rate Monitor", "tool": "Datadog", "alertMetric": "error_rate", "thresholdValue": 5, "thresholdUnit": "percent" } }, { "id": "db-1", "type": "database", "position": { "x": 1100, "y": 200 }, "props": { "label": "PostgreSQL", "replication": 2, "maxRPS": 200, "baseLatencyMs": 15 } } ], "connections": [ { "source": "webserver-1", "target": "monitor-1", "label": "HTTP Requests", "protocol": "http" }, { "source": "monitor-1", "target": "lb-1", "label": "Monitored Requests", "protocol": "http" }, { "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": "monitor-2", "label": "Service Metrics", "protocol": "http" }, { "source": "microservice-2", "target": "monitor-2", "label": "Service Metrics", "protocol": "http" }, { "source": "monitor-2", "target": "db-1", "label": "Database Queries", "protocol": "tcp" } ] }