Split assignment events are treated specially by the source API. Users do not create them directly but call methods on the contexts to assign splits.
The NoMoreSplitsEvent is in contrast to that a custom user event and needs to be handled like a custom event, when sent by enumerators and received by the readers.
That seems a bit confusing and inconsistent, given that NoMoreSplits is essential for all bounded stream use cases and is on the same level as the AddSplitEvent.
I suggest that we treat "no more splits" similarly, by having either a custom method or a custom "SplitAssignment" on the context and reader.
Becket Qin Curious what would be your take on this.