Hi, Ramin Thanks for initiating this FLIP., This proposal can lower the threshold of using Materialized Table, +1.
I read through the FLIP, and I have the following questions: 1. Regarding the default freshness default value, you mentioned that it is 1min, how is this value determined? In continuous mode, we will convert freshness to checkpoint interval, in our internal best practice, the checkpoint interval is usually 3min. In addition, for data lake scenarios such as stream writing paimon, it is more reasonable to set the checkpoint interval to 3min. In our internal best practice, the checkpoint interval is usually 3min. I think this default value needs to be discussed, or similar to `materialized-table.refresh-mode.freshness-threshold`, we also provide an option and provide a default value, which can be configured by the user. 2. You mentioned that to improve IntervalFreshness, change the current string type to int for `interval`? The `getInterval()` public method is already used by Paimon and other external systems, if we change the return value type, it will cause incompatible behavior. 3. About `MaterializedTableEnricher` interface, how to pass the user-defined implementation to the framework, i.e., how the framework perceives it? Also, does the scope of this interface support customization at the table level, or the Catalog level? Or Service level? 4. Regarding RefreshContext, can you give a concrete design of the interface and what information it will provide to MaterializedTableEnricher? Best, Ron Ramin Gharib <[email protected]> 于2025年10月6日周一 20:19写道: > 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 >
