Jean-Philippe
Sync templates from sitemap and reorganize by use case
cbd4d19
Raw History Blame Contribute Delete
1.96 kB
Client { # Client Application
n1: circle label:"Complex Query Request"
n2: rectangle label:"API Composer Service"
n19: rectangle label:"Receive Composed Response"
n20: circle label:"Display Result"
n1.handle(right) -> n2.handle(left)
n2.handle(bottom) -> Composer.n3.handle(top) [label="Compose"]
n19.handle(right) -> n20.handle(left)
}
Composer { # API Composition Layer
n3: rectangle label:"Parse Query Requirements"
n4: rectangle label:"Fan-Out Parallel Requests"
n13: rectangle label:"Collect Responses"
n14: diamond label:"All Responses Received?"
n15: rectangle label:"Merge and Transform"
n16: rectangle label:"Return Partial with Fallback"
n3.handle(right) -> n4.handle(left) [label="Decompose"]
n4.handle(bottom) -> Services.n5.handle(top) [label="GET /users"]
n4.handle(bottom) -> Services.n7.handle(top) [label="GET /orders"]
n4.handle(bottom) -> Services.n9.handle(top) [label="GET /products"]
n13.handle(right) -> n14.handle(left)
n14.handle(right) -> n15.handle(left) [label="Yes"]
n14.handle(bottom) -> n16.handle(top) [label="Timeout"]
n15.handle(top) -> Client.n19.handle(bottom) [label="Composed JSON"]
n16.handle(top) -> Client.n19.handle(bottom) [label="Partial JSON"]
}
Services { # Microservices
n5: rectangle label:"User Service"
n6: rectangle label:"User Response"
n7: rectangle label:"Order Service"
n8: rectangle label:"Order Response"
n9: rectangle label:"Product Service"
n10: rectangle label:"Product Response"
n11: rectangle label:"Aggregate Results"
n12: rectangle label:"Send to Composer"
n5.handle(right) -> n6.handle(left) [label="Query"]
n7.handle(right) -> n8.handle(left) [label="Query"]
n9.handle(right) -> n10.handle(left) [label="Query"]
n6.handle(bottom) -> n11.handle(top) [label="User Data"]
n8.handle(bottom) -> n11.handle(top) [label="Order Data"]
n10.handle(right) -> n11.handle(left) [label="Product Data"]
n11.handle(right) -> n12.handle(left)
n12.handle(top) -> Composer.n13.handle(bottom) [label="All Data"]
}