{ "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" } ] }