Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions docs/content/en/docs/documentation/eventing.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ this [blog post](https://csviri.medium.com/java-operator-sdk-introduction-to-eve
.

Event sources are a relatively simple yet powerful and extensible concept to trigger controller
executions, usually based on changes to dependent resources. You typically need an event source
executions, usually based on changes to managed resources. You typically need an event source
when you want your `Reconciler` to be triggered when something occurs to secondary resources
that might affect the state of your primary resource. This is needed because a given
`Reconciler` will only listen by default to events affecting the primary resource type it is
Expand All @@ -23,7 +23,24 @@ controller implementations because reconciliations are then only triggered when
on resources affecting our primary resources thus doing away with the need to periodically
reschedule reconciliations.

![Event Sources architecture diagram](/images/event-sources.png)
```mermaid
graph LR
Comment thread
csviri marked this conversation as resolved.
SR1ES["Secondary Resource 1
Event Source"]:::eventsource -- Event --> EH["Event Handler"]:::handler
CRES["Custom Resource
Event Source"]:::primary -- Event --> EH
SR2ES["Secondary Resource 2
Event Source"]:::eventsource -- Event --> EH
EH --> C["Controller"]:::controller
C --> SR1["Secondary Resource 1"]:::secondary
C --> SR2["Secondary Resource 2"]:::secondary

classDef eventsource fill:#3AAFA9,stroke:#2B807B,color:#fff
classDef primary fill:#C0527A,stroke:#8C3057,color:#fff
classDef handler fill:#E8873A,stroke:#B05E1F,color:#fff
classDef controller fill:#326CE5,stroke:#1A4AAF,color:#fff
classDef secondary fill:#3AAFA9,stroke:#2B807B,color:#fff
```

There are few interesting points here:

Expand Down Expand Up @@ -214,7 +231,7 @@ A best practice when an operator starts up is to reconcile all the associated re
changes might have occurred to the resources while the operator was not running.

When this first reconciliation is done successfully, the next reconciliation is triggered if either
dependent resources are changed or the primary resource `.spec` field is changed. If other fields
managed resources are changed or the primary resource `.spec` field is changed. If other fields
like `.metadata` are changed on the primary resource, the reconciliation could be skipped. This
behavior is supported out of the box and reconciliation is by default not triggered if
changes to the primary resource do not increase the `.metadata.generation` field.
Expand Down
2 changes: 1 addition & 1 deletion docs/content/en/docs/documentation/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ See the [integration test](https://github.com/operator-framework/java-operator-s

```java
public class DeploymentReconciler
implements Reconciler<Deployment>, TestExecutionInfoProvider {
implements Reconciler<Deployment> {
Comment on lines 15 to +16
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is titled/described as improving the eventing docs image/wording, but this hunk also changes the example in features.md (removing TestExecutionInfoProvider). If this is intentional, consider briefly mentioning it in the PR description (or splitting into a separate docs PR) to keep review scope clear.

Copilot uses AI. Check for mistakes.

@Override
public UpdateControl<Deployment> reconcile(
Expand Down
Binary file removed docs/static/images/event-sources.png
Binary file not shown.