Phase 2: Execution Fallback for Parallel Development & Compatibility
# Problem Statement
Elasticsearch filter migrations currently create a hard coupling between frontend delivery and backend readiness.
New filters or search behaviour cannot be safely exposed in the UI until Elasticsearch fully supports them. This leads to:
- Blocked frontend milestones when ES migrations slip
- Wasted planning effort when features must be deferred or dropped
- Risky releases if partial ES support causes pagination gaps or empty result sets
- Tight version coupling between frontend and backend
- Sequential delivery instead of parallel execution
Without a safe fallback mechanism, the system has no way to accept new filter inputs when ES support is incomplete.
# Solution
Introduce and adopt the **Execution Fallback Framework** as a standard execution path for search filters.
The framework:
- Transparently falls back to Postgres enrichment when ES cannot execute a filter
- Preserves pagination density through bounded over-fetching and trimming
- Supports batched enrichment for performance safety
- Allows fallback activation to be gated by feature flags and migration status
With this in place:
- Frontend can ship filters ahead of full ES support
- Backend can migrate filters incrementally
- Multiple backend versions can safely coexist
- Pagination remains stable
- Rollouts become reversible and low-risk
Execution fallback becomes the contract that decouples feature delivery from infrastructure readiness, enabling parallel development and preventing wasted milestones.
epic