{"$schema":"https://open-resource-discovery.org/spec-v1/interfaces/Document.schema.json#","openResourceDiscovery":"1.17","description":"Landscape-wide taxonomy (vendor, product, groups, consumption bundle) plus data products and capabilities that combine several services of the ORD playground shop.","perspective":"system-instance","describedSystemInstance":{"baseUrl":"https://discovery-ord.zazukoians.org"},"describedSystemType":{"systemNamespace":"zazuko.shop"},"vendors":[{"ordId":"zazuko:vendor:Zazuko:","title":"Zazuko"}],"products":[{"ordId":"zazuko:product:OrdPlaygroundShop:","title":"ORD Playground Shop","shortDescription":"A fictional web shop made of several small services to explore ORD","description":"The ORD Playground Shop is a tiny landscape of independent services — REST, GraphQL, OData, SOAP, WebSocket events and MCP — whose data can be joined through shared business keys (customer, product, order and shipment IDs).","vendor":"zazuko:vendor:Zazuko:"}],"consumptionBundles":[{"ordId":"zazuko.shop:consumptionBundle:OpenAccess:v1","title":"Open Access","shortDescription":"All playground APIs, no credentials required","description":"Every API and event resource of the playground can be consumed anonymously. In a real landscape a consumption bundle groups resources that share the same credentials / client registration.","version":"1.0.0","lastUpdate":"2026-10-27T09:00:00+00:00"}],"groupTypes":[{"groupTypeId":"zazuko.shop:domain","title":"Business Domain","description":"Groups resources by the business domain they belong to."}],"groups":[{"groupId":"zazuko.shop:domain:zazuko.shop:sales","groupTypeId":"zazuko.shop:domain","title":"Sales","description":"Customers and sales orders"},{"groupId":"zazuko.shop:domain:zazuko.shop:catalog","groupTypeId":"zazuko.shop:domain","title":"Catalog","description":"Products, categories and suppliers"},{"groupId":"zazuko.shop:domain:zazuko.shop:logistics","groupTypeId":"zazuko.shop:domain","title":"Logistics","description":"Shipments and parcel tracking"},{"groupId":"zazuko.shop:domain:zazuko.shop:analytics","groupTypeId":"zazuko.shop:domain","title":"Analytics","description":"Cross-domain insights built on top of the other domains"}],"packages":[{"ordId":"zazuko.shop:package:Landscape:v1","title":"Landscape Data Products & Capabilities","shortDescription":"Data products and workflows spanning several playground services","description":"Contains the data products and capabilities that combine resources owned by different services of the playground.","version":"1.0.0","vendor":"zazuko:vendor:Zazuko:","partOfProducts":["zazuko:product:OrdPlaygroundShop:"],"licenseType":"MIT","tags":["ord-playground"]}],"dataProducts":[{"ordId":"zazuko.shop:dataProduct:SalesOrders:v1","localId":"SalesOrders","title":"Sales Orders","shortDescription":"Sales orders with their items, as a query API and as a change stream","description":"Primary data product of the sales domain. The full data set can be queried through the Orders OData service, changes are published as Order events.\n\nJoin keys: `CustomerID` → Customer, `ProductID` → Product.","partOfPackage":"zazuko.shop:package:Landscape:v1","partOfGroups":["zazuko.shop:domain:zazuko.shop:sales"],"partOfProducts":["zazuko:product:OrdPlaygroundShop:"],"version":"1.0.0","lastUpdate":"2026-10-27T09:00:00+00:00","visibility":"public","releaseStatus":"active","lifecycleStatus":"active","type":"primary","category":"business-object","entityTypes":["zazuko.shop:entityType:Order:v1","zazuko.shop:entityType:OrderItem:v1"],"outputPorts":[{"ordId":"zazuko.shop:apiResource:OrdersOData:v1"},{"ordId":"zazuko.shop:eventResource:OrderEvents:v1"}],"responsible":"zazuko:team:ord-playground","tags":["orders"]},{"ordId":"zazuko.shop:dataProduct:Customer360:v1","localId":"Customer360","title":"Customer 360","shortDescription":"Customers enriched with their orders, purchased products and shipments","description":"Derived data product: combines the Customers REST API, the Orders OData service, the Products GraphQL API and the Shipping SOAP service. Exposed through the tools of the Insights MCP server.","partOfPackage":"zazuko.shop:package:Landscape:v1","partOfGroups":["zazuko.shop:domain:zazuko.shop:analytics"],"partOfProducts":["zazuko:product:OrdPlaygroundShop:"],"version":"1.0.0","lastUpdate":"2026-10-27T09:00:00+00:00","visibility":"public","releaseStatus":"beta","lifecycleStatus":"active","type":"derived","category":"analytical","entityTypes":["zazuko.shop:entityType:Customer:v1","zazuko.shop:entityType:Order:v1","zazuko.shop:entityType:Product:v1","zazuko.shop:entityType:Shipment:v1"],"inputPorts":[{"ordId":"zazuko.shop:integrationDependency:Customer360Sources:v1"}],"outputPorts":[{"ordId":"zazuko.shop:apiResource:InsightsMCP:v1"}],"responsible":"zazuko:team:ord-playground","tags":["customer-360","analytics"]}],"capabilities":[{"ordId":"zazuko.shop:capability:CustomerOrderLookup:v1","localId":"CustomerOrderLookup","type":"workflow","title":"Customer Order Lookup","shortDescription":"Arazzo workflow: find a customer by e-mail, then fetch their orders","description":"Orchestrates two APIs owned by different services: the customer ID returned by the Customers REST API is used to filter the Orders OData service.","partOfPackage":"zazuko.shop:package:Landscape:v1","partOfGroups":["zazuko.shop:domain:zazuko.shop:sales"],"version":"1.0.0","lastUpdate":"2026-10-27T09:00:00+00:00","visibility":"public","releaseStatus":"beta","relatedApiResources":[{"ordId":"zazuko.shop:apiResource:CustomersAPI:v1","relationType":"ord:orchestrates"},{"ordId":"zazuko.shop:apiResource:OrdersOData:v1","relationType":"ord:orchestrates"}],"relatedEntityTypes":["zazuko.shop:entityType:Customer:v1","zazuko.shop:entityType:Order:v1"],"definitions":[{"type":"arazzo-v1","mediaType":"application/json","url":"https://discovery-ord.zazukoians.org/workflows/customer-order-lookup.arazzo.json","accessStrategies":[{"type":"open"}]}]}]}