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