Hi Zakelly,

Thanks for your proposal. The FLIP looks in good shape. +1 for it! I'd like
to ask some questions to understand your thoughts more precisely.

1. StateFuture<T> is a new interface. At first glance, it should
be @Experimental. But according to our API Arch rule[1], it should be at
least @PublicEvolving, if it will be used by any existing PublicEvloving
classes. You might want to add this info to your FLIP, if we want to go
with this option.

2. The return types of methods in State and related sub-interfaces are
StateFuture<XXX>. Since the old State interfaces already have those methods
and Java does not allow method overload with the same method but different
return types. Do you want to change the old methods or use new interfaces?
My understanding is that, according to the description in the
"Compatibility, Deprecation, and Migration Plan'' section in the FLIP, new
interfaces will be defined alongside the old interfaces. I guess the
long-term intention of this FLIP is not to deprecate the synchronous State
API. Both State APIs will be supported for different scenarios. In this
case, does it make sense to:

        2.1 annotated all new interfaces with @Experimental to have the
flexibility for further modifications?
        2.2 use different names e.g. AsyncState etc. to avoid potential
human mistakes while coding(e.g. import wrong package by mistake etc.) and
ease the job development with state?

Best regards,
Jing


[1]
https://github.com/apache/flink/blob/d6a4eb966fbc47277e07b79e7c64939a62eb1d54/flink-architecture-tests/flink-architecture-tests-production/src/main/java/org/apache/flink/architecture/rules/ApiAnnotationRules.java#L99

On Thu, Mar 7, 2024 at 9:49 AM Zakelly Lan <zakelly....@gmail.com> wrote:

> Hi devs,
>
> I'd like to start a discussion on a sub-FLIP of FLIP-423: Disaggregated
> State Storage and Management[1], which is a joint work of Yuan Mei, Zakelly
> Lan, Jinzhong Li, Hangxiang Yu, Yanfei Lei and Feng Wang:
>
>  - FLIP-424: Asynchronous State APIs [2]
>
> This FLIP introduces new APIs for asynchronous state access.
>
> Please make sure you have read the FLIP-423[1] to know the whole story, and
> we'll discuss the details of FLIP-424[2] under this mail. For the
> discussion of overall architecture or topics related with multiple
> sub-FLIPs, please post in the previous mail[3].
>
> Looking forward to hearing from you!
>
> [1] https://cwiki.apache.org/confluence/x/R4p3EQ
> [2] https://cwiki.apache.org/confluence/x/SYp3EQ
> [3] https://lists.apache.org/thread/ct8smn6g9y0b8730z7rp9zfpnwmj8vf0
>
>
> Best,
> Zakelly
>

Reply via email to