This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A few things worth highlighting about the diagram above.
- The `ControllerEventSource` is a special, internal event source responsible for handling events
pertaining to changes affecting the primary resource. The SDK registers it automatically for every
controller and you never instantiate it yourself.
- Every controller also gets a dedicated `TimerEventSource` (named
`RetryAndRescheduleTimerEventSource`) that the SDK uses to drive retry attempts after a failed
reconciliation, `UpdateControl.rescheduleAfter(...)` requests, and the periodic max-interval
failsafe trigger. The `EventProcessor` is the sole caller into this timer, scheduling delayed
events back to itself via `scheduleOnce(...)`. Like the controller event source, this one is
wired internally and is not something you register or interact with directly.
- Once an event reaches the `EventProcessor`, dispatch is delegated to the
`ReconciliationDispatcher`, which prepares the execution context, handles finalizers and other
framework concerns, and ultimately invokes `reconcile(...)` on the internal `Controller` wrapper,
which in turn calls the user-implemented `Reconciler`.
- The framework includes an internal event source (`ControllerEventSource`) for changes affecting
the primary resource. The SDK registers it automatically for every controller, and you never
instantiate it yourself.
- Every controller also gets an internal timer-based event source that the SDK uses for delayed
retries, `UpdateControl.rescheduleAfter(...)` requests, and periodic failsafe triggering. Like
the controller event source, it is wired internally and is not something you register or interact
with directly.
- Once an event enters the framework's processing pipeline, the SDK prepares the reconciliation
context, handles finalizers and other framework concerns, and then invokes the user-implemented
`Reconciler`.
Events always relate to a given primary resource, and the SDK guarantees that there is no
concurrent execution of the reconciler for any given primary resource, even in the presence of
Expand Down
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs: eventing hides implementation details #3379
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
docs: eventing hides implementation details #3379
Filter by extension
Viewed files
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing