Summary
The eventing documentation page (docs/content/en/docs/documentation/eventing.md) has drifted significantly from the current code and is missing structural context that would help readers understand how the built-in event sources fit together.
What's stale
- The page repeatedly references
CustomResourceEventSource, a class that does not exist in the repo (and as far as I can tell never has under that exact name).
- The
#### ControllerResourceEventSource heading and its linked file path refer to the pre-2021 name. The class was renamed to ControllerEventSource in commit 86245ca6 ("refactor: renaming core classes and APIs"). The link 404s.
- The diagram at the top of the page labels the auto-registered SDK event source as "Custom Resource Event Source", which doesn't match the code.
TimerEventSource is not mentioned anywhere on the page, despite being unconditionally instantiated for every controller in EventSources.<init> (line 44 of EventSources.java) and wired to the EventProcessor alongside the controller event source. It drives retry attempts, UpdateControl.rescheduleAfter(...), and the maxReconciliationInterval failsafe.
- The
Registering Event Sources code snippet uses EventSourceInitializer<Webapp>, an interface that no longer exists. prepareEventSources is now a default method on Reconciler. The snippet also calls the reconciler WebappReconciler / Webapp while the actual sample file is WebPageReconciler / WebPage.
- The intro paragraph contains a broken sentence: "Event sources act as listen to events affecting these secondary resources..."
- The intro is one long paragraph mixing 4-5 distinct ideas (what event sources are, why you need them, non-Kubernetes use cases, efficiency).
- The "There are few interesting points here:" paragraph promises a list but is a single dense block.
- A "See related method" link in the Caching and Event Sources section points to line 146 of
PerResourcePollingEventSource.java, which is a return; statement inside FetchingExecutor.run(), completely unrelated. The prose is describing getSecondaryResources(P primary) (around line 160 to 180 of the same file).
- Roughly a dozen inline links use the old GitHub org
github.com/java-operator-sdk/java-operator-sdk instead of the current github.com/operator-framework/java-operator-sdk. They still redirect, but mixing the two orgs on the same page looks inconsistent.
What's missing
- No overview of the event source class hierarchy. Readers see a flat list of built-ins (
InformerEventSource, PollingEventSource, etc.) with no indication of which classes share an abstract parent (ManagedInformerEventSource, ExternalResourceCachingEventSource) or where the EventSource interface and AbstractEventSource sit.
Summary
The eventing documentation page (
docs/content/en/docs/documentation/eventing.md) has drifted significantly from the current code and is missing structural context that would help readers understand how the built-in event sources fit together.What's stale
CustomResourceEventSource, a class that does not exist in the repo (and as far as I can tell never has under that exact name).#### ControllerResourceEventSourceheading and its linked file path refer to the pre-2021 name. The class was renamed toControllerEventSourcein commit86245ca6("refactor: renaming core classes and APIs"). The link 404s.TimerEventSourceis not mentioned anywhere on the page, despite being unconditionally instantiated for every controller inEventSources.<init>(line 44 ofEventSources.java) and wired to theEventProcessoralongside the controller event source. It drives retry attempts,UpdateControl.rescheduleAfter(...), and themaxReconciliationIntervalfailsafe.Registering Event Sourcescode snippet usesEventSourceInitializer<Webapp>, an interface that no longer exists.prepareEventSourcesis now a default method onReconciler. The snippet also calls the reconcilerWebappReconciler/Webappwhile the actual sample file isWebPageReconciler/WebPage.PerResourcePollingEventSource.java, which is areturn;statement insideFetchingExecutor.run(), completely unrelated. The prose is describinggetSecondaryResources(P primary)(around line 160 to 180 of the same file).github.com/java-operator-sdk/java-operator-sdkinstead of the currentgithub.com/operator-framework/java-operator-sdk. They still redirect, but mixing the two orgs on the same page looks inconsistent.What's missing
InformerEventSource,PollingEventSource, etc.) with no indication of which classes share an abstract parent (ManagedInformerEventSource,ExternalResourceCachingEventSource) or where theEventSourceinterface andAbstractEventSourcesit.