container
Search Index

Search Index

The denormalised, search-optimised index of products that powers product search.

SearchIndexopensearch@2Residency: eu-west-1Retention: rebuildableAccess Mode: readWrite

What is this?

The Search Index is a denormalised, search-optimised copy of the catalog. It is not a source of truth — it can be rebuilt at any time by replaying product events from the Product Catalog SystemProduct Catalog SystemSystemv1.0.0Internal system that is the source of truth for product data. Owns the product database and publishes product change eve...Ownerproduct-platformMapView docs. The Search IndexerSearch IndexerServicev1.0.0Consumes product change events from the Product Catalog System and keeps the search index up to date so products are dis...Subscribesproduct-created, product-updated +1Ownersearch-platformMapRepoView docs keeps it up to date, and the Search APISearch APIServicev1.0.0Public-facing API that serves fast, relevant product search to the rest of the business, reading from the search index. Subscribessearch-productsAPIsOpenAPIOwnersearch-platformMapRepoView docs reads from it to answer Search ProductsSearch ProductsQueryv1.0.0Query to search the catalog for products matching a term, with optional filters and pagination. Ownersearch-platformSchemaMapView docs queries.

What does it store?

One document per product, optimised for search:

  • Searchable text — name and description, analysed for full-text matching.
  • Filterable fields — category, status, price, currency.
  • A relevance signal used to rank results.

Why is it not authoritative?

The system of record is the Product DatabaseProduct DatabaseContainerv1.0.0PostgreSQL database that is the system of record for all product data.MapView docs. The index is a derived read model: if it is ever lost or corrupted, we rebuild it by replaying Product CreatedProduct CreatedEventv1.0.0Published when a new product has been added to the catalog. Ownerproduct-platformSchemaMapView docs, Product UpdatedProduct UpdatedEventv1.0.0Published when an existing product's data has changed. Ownerproduct-platformSchemaMapView docs and Product DeletedProduct DeletedEventv1.0.0Published when a product has been removed from the catalog. Ownerproduct-platformSchemaMapView docs events. This keeps search fast without coupling other teams to the catalog database.

Operational notes

  • Rebuildable: a full reindex is a supported, routine operation.
  • Eventually consistent: changes appear in search shortly after the Search IndexerSearch IndexerServicev1.0.0Consumes product change events from the Product Catalog System and keeps the search index up to date so products are dis...Subscribesproduct-created, product-updated +1Ownersearch-platformMapRepoView docs processes the corresponding event.