Hi all, Thanks again for the excellent feedback on FLIP-551. The discussion has been very helpful, and I've made some updates to the proposal based on your input.
I’d like to highlight three key changes: 1. Added Separate Default Configurations for FULL and CONTINUOUS Modes Based on Feng's feedback, I've updated the proposal to include two separate configuration options: - materialized-table.default-freshness.continuous (default: 3 min) - materialized-table.default-freshness.full (default: 15 min (TBD)) This correctly handles the edge case where a user specifies REFRESH_MODE = FULL without a FRESHNESS and ensures a sensible, mode-specific default is always applied. A new user journey has been added to the FLIP to make this behavior clear. 2. Simplified the MaterializedTableEnricher Interface After further review of the architecture, I've simplified the MaterializedTableEnricher interface significantly. It now has a single enrich(CatalogMaterializedTable) method. This makes the design much cleaner and more atomic. The enricher now receives all the context it needs directly from the unresolved CatalogMaterializedTable object itself. As a result, the separate RefreshContext class is no longer necessary, simplifying the overall API. Cheers, Ramin On Mon, Oct 6, 2025 at 2:18 PM Ramin Gharib <[email protected]> wrote: > Hi everyone, > > I would like to start a discussion on FLIP-551 [1], which proposes making > the FRESHNESS clause optional for Materialized Tables. > > The goal is to simplify the user experience for common streaming cases and > to enable more powerful, platform-level default logic. > > The proposal achieves this by: > > 1. > > Making the FRESHNESS DDL clause optional, falling back to a sensible > default of 1 minute. > 2. > > Introducing a new, MaterializedTableEnricher interface for custom > logic to resolve the final Freshness and RefreshMode into the > ResolvedCatalogMaterializedTable when they are omitted. > > This change reduces boilerplate for users while providing a clean > extension point for advanced use cases. The complete architectural details > and API are in the FLIP. > > I'm looking forward to hearing your feedback. > > [1] > https://cwiki.apache.org/confluence/display/FLINK/FLIP-551%3A+Make+FRESHNESS+Optional+for+Materialized+Tables > > Thanks, > > Ramin >
