Skip to content

catalog-rebuild

Rebuilds the strategy catalog-index cache from source (experiment runs + authored manifest + ACTIVE pointers) so the browse/leaderboard API serves fresh data without scanning on every request.

Overview

Property Value
Trigger EventBridge scheduled event
Runtime Python 3.11
Purpose Periodic drift backstop for the catalog-index cache

It invokes the backend POST /api/v1/catalog/rebuild route, which calls CatalogService.rebuild_index().

Behavior

The rebuild is strict and all-or-nothing. It enumerates every strategy from all sources, and if any source (MLflow runs, the strategy manifest, or the ACTIVE-pointer / Release reads) is unavailable it aborts before any upsert or eviction (the route returns 503) rather than pruning valid rows during an outage.

  • Upsert the resolved catalog row for every strategy enumerated from source.
  • Evict index rows whose strategy no longer exists in source (orphan cleanup) — only when the source read was verified complete.
  • 503 on an incomplete source read: no rows changed; the scheduled invocation retries.

Output Schema

{"rebuilt": 42}   # number of catalog-index rows written