Skip to content
NFH Fabric Support home
NFH Fabric Support home

DISCOVR — find catalogs

Welcome to the documentation for Fabric DISCOVR — the Discovery Service (DS) of the Fabric ecosystem.

Welcome to the documentation for Fabric DISCOVR — the Discovery Service (DS) of the Fabric ecosystem. It is a high-performance, real-time discovery engine that enables consumers to find resources across all published catalogues in Fabric-enabled networks.

This guide is intended for Consumer Node (CN) developers, consumer application builders, network facilitators, and anyone building search experiences on top of Fabric catalogues.

Screenshot 2026-07-15 at 8.48.19 PM.png



What is Fabric DISCOVR?

Fabric DISCOVR is the query-time search and discovery layer for Fabric ecosystems. It runs on the consumer node side of the network — it exists to serve consumer applications' search requests, not to publish or manage provider catalogues.

While Fabric CATALG (CS) acts as the source of truth for catalogue publishing and validation, DISCOVR (DS) is purpose-built for real-time search — it indexes catalogue data from CATALG and exposes it through fast, flexible query APIs that power consumer-facing search experiences.

DISCOVR receives catalogue updates from CATALG (via subscription-based delivery), indexes them for search, and serves discovery requests from Consumer Nodes (CNs) and consumer applications with sub-second response times. A provider's catalogue only starts flowing into DISCOVR once the provider has subscribed to the network — see How DISCOVR Stays Updated below.

Why Do You Need Fabric DISCOVR?

Without a dedicated discovery layer, consumer applications face:

  • Querying raw catalogue data directly — slow, unstructured, and unscalable

  • Building custom search indexes per application — duplicated effort, inconsistent results

  • No support for natural language, spatial, or attribute-based search across providers

  • No unified view of resources across multiple catalogues and networks

Fabric DISCOVR solves this by offering:

  • One search endpoint across all catalogues published to the network

  • Multiple search modes — natural language, keyword, spatial (location-based), and JSONPath attribute filtering

  • Real-time indexing — catalogue changes from CATALG are indexed and searchable within seconds

  • Provider-agnostic results — consumers see resources from all providers, with offers from multiple retailers in one response

Key Capabilities

For Consumer Nodes (CNs)

  • Natural language search — ask questions like "strong Assam tea for morning chai" or "premium coffee under 500 rupees"

  • Keyword search — find resources by name, description, brand, or any indexed attribute

  • Spatial search — find resources available near a location using GeoJSON coordinates and distance radius

  • Attribute filtering — query resources and offers using JSONPath expressions for fine-grained filtering (e.g., "flat discount offers under ₹100")

  • Combined queries — mix text search with spatial constraints in a single request

  • Schema-aware results — responses include full resource attributes, ratings, offers, and provider details

For Discovery Service (DS) Builders

  • Subscription-driven indexing — DISCOVR subscribes to CATALG and receives catalogue updates automatically via POST /catalog/push

  • Full-text and spatial search — supports keyword matching, natural language understanding, and geospatial proximity queries

  • Quality-assured results — incoming catalogues are validated, deduplicated, and pruned before being served to consumers

For Network Facilitators

  • Network-wide search — query across all providers and catalogues in a network

  • Schema type filtering — discover resources by domain type (e.g., GroceryItem, ChargingService, HealthcareProvider)

  • Offer comparison — see multiple retailer offers for the same resource in one response

  • Real-time availability — search results reflect the latest published catalogue state

High-Level Architecture

CATALG DISCOVR (source of truth) (search engine) | | | POST /catalog/push | | (catalogue updates delivered | | to subscribed DISCOVR instances) | |------------------------------------->| | | Index for search | | Store for spatial queries | | | | Consumer Node (CN) | | | | POST /discover | | (text / spatial / JSONPath) | |------------------------------------->| | | Query search + spatial indexes | POST /on_discover (callback) | | (matching resources + offers) | |<-------------------------------------|

Example Use Case

A consumer opens a grocery shopping app and searches for "instant coffee near me". The Consumer Node (CN) sends a discover request to Fabric DISCOVR combining natural language text search with a spatial constraint (5 km radius around the consumer's location).

DISCOVR queries its search index for resources matching "instant coffee" and its spatial index for resources with availability locations within 5 km. The response includes multiple matching products from different providers — each with competing offers showing different prices, discounts, and delivery estimates.

The consumer compares offers and proceeds to order from the provider with the best price and fastest delivery.

Design Principles

  • Real-time query engine: Optimized for sub-second search — not for catalogue storage or validation (that's CATALG's role)

  • Subscription-driven: Receives catalogue updates from CATALG automatically — no polling or manual sync

  • Multi-modal search: Supports text, natural language, spatial, and structured attribute queries — individually or combined

  • Provider-agnostic: Returns resources from all providers in a network, with competing offers side by side

  • Schema-aware: Understands Fabric resource and offer schemas — filters, groups, and prunes results based on schema context

API Reference

DISCOVR exposes two classes of HTTP endpoints: a consumer-facing discovery endpoint for running queries, and a CATALG-facing ingestion endpoint that receives catalog updates pushed from CATALG.

Discovery APIs (Consumer Node-facing)

API

Method

Description

/discover

POST

Asynchronous — acknowledges with ACK, delivers results via POST /on_discover callback to bapUri

Catalog Ingestion API (CATALG-facing)

DISCOVR implements the /catalog/push endpoint that CATALG calls to deliver catalog updates matching an active subscription — the push leg of How DISCOVR Stays Updated. DISCOVR validates the push and responds synchronously with a Fabric ACK (accepted — indexed asynchronously and searchable via /discover shortly after) or NACK.

What DISCOVR receives. Each entry in message.catalogs[] is a resolved catalog, not the raw fragment a Provider Node published. For resources that extend a master (masterResourceId), CATALG merges the master into the overlay (master-wins) before pushing, so DISCOVR receives self-contained, indexable resources. DISCOVR does not re-resolve against masters — it indexes exactly what is pushed.

The endpoint's authentication, request body (CatalogPublishAction with context.action: catalog/push), a full example payload, HTTP status codes, and ACK/NACK shapes are defined in the CATALG API Reference — POST /catalog/push.

Search Modes

Mode

Description

Example

Text / Natural Language

Keyword or conversational query

"strong Assam tea for morning chai"

Spatial

Find resources near a location

Within 5 km of a GPS coordinate

Attribute Filter

Fine-grained filtering on resource or offer attributes

Flat discount offers under ₹100

Combined

Mix any of the above in a single request

Coffee search within 5 km radius

For detailed request/response formats and examples, see Usage and Examples.

How DISCOVR Stays Updated

DISCOVR does not poll CATALG for changes. Instead, it uses Fabric's subscription mechanism:

  1. DISCOVR subscribes to CATALG using POST /catalog/subscription with networkIds and/or schemaTypes filters

  2. When a provider publishes or updates a catalogue in CATALG, CATALG matches against active subscriptions

  3. Matching catalogue data is delivered to DISCOVR via POST /catalog/push

  4. DISCOVR indexes the received catalogue for search and spatial queries

  5. The updated data is immediately searchable via POST /discover

For historical data or initial sync, DISCOVR uses the CATALG Pull API (POST /catalog/pull) to fetch all existing catalogues.

The Fabric capability: Discovery

DISCOVR realises the Fabric Discovery capability — network-wide search across every catalogue on Fabric: offerings, providers, credentials, and capabilities.

What it gives you

  • Network-wide search — one query, every catalogue.

  • Structured filters — by category, geography, provider type, credential, price.

  • Agent-native queries — discovery exposed as MCP tools for autonomous agents.

  • Federated indexes — operators can run sector- or geography-specific indexes that compose into the global surface.

Where it sits — a service NFH runs (the indexed discovery surface that consumes Cataloguing), the protocol NFH defines (query and response schemas), and reference software NFH publishes (discovery clients and agent integrations).

Standards alignment: MCP for agent-native discovery · open query APIs.