+1 to this effort.
There is value in adding support for Events - general bookkeeping and
helping replay actions in the event of recovery.
At the minimum we should aim to track the following all catalogs:
1. Create actions
2. Alter actions
3. Delete actions
across all tables, properties and namespaces.



On Tue, Nov 30, 2021 at 9:12 PM Jack Ye <yezhao...@gmail.com> wrote:

> Hi everyone,
>
> I would like to start some initial discussions around Iceberg event
> notification support, because we might have some engineering resources to
> work on Iceberg notification integration with AWS services such as SNS,
> SQS, CloudWatch.
>
> As of today, we have a Listener interface and 3 events ScanEvent,
> IncrementalScanEvent, CreateSnapshotEvent. There is a static registry
> called Listeners that registers the event listeners in the JVM.
>
> However, when I read the related code paths, my thought is that it might
> be better to register listeners per-table, based on the following
> observations:
> 1. Iceberg events are all table or sub-table level events. For any catalog
> or global level events, the catalog service can provide notifications,
> Iceberg can be out of the picture.
> 2. A user might have multiple Iceberg catalogs defined, pointing to
> different catalog services. (e.g. one to AWS Glue, one to a Hive
> metastore). The notifications from tables of these different catalogs
> should be directed to different listeners at least per catalog, instead of
> the same set of listeners that are registered globally.
> 3. Event listener configurations are usually static. It makes more sense
> to me to define it once and then repeatedly use it, instead of
> re-registering it every time I start an application.
>
> If we register the listeners at table level, we can add a hook in
> TableOperations to get a set of listeners to emit specific events. The
> listeners could be defined and serialized as a part of the table
> properties, or maybe even a part of the Iceberg spec.
>
> This is really just my brainstorming. Maybe it's a bit overkill, maybe I
> am missing the correct way to use the Listeners static registry. It would
> be great if anyone could provide more contexts or thoughts around this
> topic.
>
> Best,
> Jack Ye
>
>
>
>
>
>
>
>
>
>

-- 
Regards,
Neelesh S. Salian

Reply via email to