{"$schema":"https://open-resource-discovery.org/spec-v1/interfaces/Document.schema.json#","openResourceDiscovery":"1.17","description":"Business events of the ORD playground shop (service: order-events), streamed over WebSocket.","perspective":"system-instance","describedSystemInstance":{"baseUrl":"https://discovery-ord.zazukoians.org"},"describedSystemType":{"systemNamespace":"zazuko.shop"},"packages":[{"ordId":"zazuko.shop:package:Events:v1","title":"Shop Business Events","shortDescription":"CloudEvents published by the shop","description":"Event resources (described with AsyncAPI) and the WebSocket API used to receive them.","version":"1.0.0","vendor":"zazuko:vendor:Zazuko:","partOfProducts":["zazuko:product:OrdPlaygroundShop:"],"licenseType":"MIT","tags":["ord-playground"]}],"eventResources":[{"ordId":"zazuko.shop:eventResource:OrderEvents:v1","localId":"OrderEvents","title":"Order Events","shortDescription":"Status changes of sales orders","description":"Emits `zazuko.shop.Order.StatusChanged.v1`. `data.orderId` joins to the Orders OData service, `data.customerId` to the Customers API.","partOfPackage":"zazuko.shop:package:Events:v1","partOfGroups":["zazuko.shop:domain:zazuko.shop:sales"],"partOfConsumptionBundles":[{"ordId":"zazuko.shop:consumptionBundle:OpenAccess:v1"}],"partOfProducts":["zazuko:product:OrdPlaygroundShop:"],"version":"1.0.0","lastUpdate":"2026-10-27T09:00:00+00:00","visibility":"public","releaseStatus":"active","resourceDefinitions":[{"type":"asyncapi-v2","mediaType":"application/json","url":"https://events-ord.zazukoians.org/asyncapi/orders.json","accessStrategies":[{"type":"open"}]}],"eventResourceLinks":[{"type":"api-documentation","url":"https://events-ord.zazukoians.org/events/recent?topic=orders"}],"tags":["events","cloudevents","orders"],"exposedEntityTypes":[{"ordId":"zazuko.shop:entityType:Order:v1"}]},{"ordId":"zazuko.shop:eventResource:ShipmentEvents:v1","localId":"ShipmentEvents","title":"Shipment Events","shortDescription":"Tracking checkpoints of shipments","description":"Emits `zazuko.shop.Shipment.TrackingUpdated.v1`. `data.shipmentId` joins to the Shipping web service.","partOfPackage":"zazuko.shop:package:Events:v1","partOfGroups":["zazuko.shop:domain:zazuko.shop:logistics"],"partOfConsumptionBundles":[{"ordId":"zazuko.shop:consumptionBundle:OpenAccess:v1"}],"partOfProducts":["zazuko:product:OrdPlaygroundShop:"],"version":"1.0.0","lastUpdate":"2026-10-27T09:00:00+00:00","visibility":"public","releaseStatus":"active","resourceDefinitions":[{"type":"asyncapi-v2","mediaType":"application/json","url":"https://events-ord.zazukoians.org/asyncapi/shipments.json","accessStrategies":[{"type":"open"}]}],"eventResourceLinks":[{"type":"api-documentation","url":"https://events-ord.zazukoians.org/events/recent?topic=shipments"}],"tags":["events","cloudevents","shipments"],"exposedEntityTypes":[{"ordId":"zazuko.shop:entityType:Shipment:v1"}]},{"ordId":"zazuko.shop:eventResource:InventoryEvents:v1","localId":"InventoryEvents","title":"Inventory Events","shortDescription":"Stock level changes of products","description":"Emits `zazuko.shop.Product.StockChanged.v1`. `data.productId` joins to the Products GraphQL API.","partOfPackage":"zazuko.shop:package:Events:v1","partOfGroups":["zazuko.shop:domain:zazuko.shop:catalog"],"partOfConsumptionBundles":[{"ordId":"zazuko.shop:consumptionBundle:OpenAccess:v1"}],"partOfProducts":["zazuko:product:OrdPlaygroundShop:"],"version":"1.0.0","lastUpdate":"2026-10-27T09:00:00+00:00","visibility":"public","releaseStatus":"active","resourceDefinitions":[{"type":"asyncapi-v2","mediaType":"application/json","url":"https://events-ord.zazukoians.org/asyncapi/inventory.json","accessStrategies":[{"type":"open"}]}],"eventResourceLinks":[{"type":"api-documentation","url":"https://events-ord.zazukoians.org/events/recent?topic=inventory"}],"tags":["events","cloudevents","inventory"],"exposedEntityTypes":[{"ordId":"zazuko.shop:entityType:Product:v1"}]}],"apiResources":[{"ordId":"zazuko.shop:apiResource:EventStreamWebSocket:v1","localId":"EventStreamWebSocket","title":"Event Stream WebSocket","shortDescription":"Subscribe to shop events over WebSocket","description":"Connect to `/ws/orders`, `/ws/shipments`, `/ws/inventory` or `/ws/all` to receive CloudEvents as JSON text frames.","partOfPackage":"zazuko.shop:package:Events:v1","partOfGroups":["zazuko.shop:domain:zazuko.shop:sales"],"partOfConsumptionBundles":[{"ordId":"zazuko.shop:consumptionBundle:OpenAccess:v1"}],"partOfProducts":["zazuko:product:OrdPlaygroundShop:"],"version":"1.0.0","lastUpdate":"2026-10-27T09:00:00+00:00","visibility":"public","releaseStatus":"active","apiProtocol":"websocket","direction":"outbound","entryPoints":["wss://events-ord.zazukoians.org/ws"],"resourceDefinitions":[{"type":"custom","mediaType":"application/json","url":"https://events-ord.zazukoians.org/asyncapi.json","accessStrategies":[{"type":"open"}],"customType":"zazuko.shop:asyncapi-v2:v1"}],"tags":["events","websocket"]}]}