Skip to content

Commit 8988d36

Browse files
UzzieeSamBarker
andauthored
012 - Hot reload feature proposal (#83)
* hot reload feature proposal Signed-off-by: Urjit Patel <105218041+Uzziee@users.noreply.github.com> Signed-off-by: Urjit Patel <upatel@confluent.io> * replace file watcher with HTTP based approach Signed-off-by: Urjit Patel <105218041+Uzziee@users.noreply.github.com> Signed-off-by: Urjit Patel <upatel@confluent.io> * Restructure proposal to reflect discussion consensus Rewrite the hot reload proposal to focus on architectural decisions rather than implementation detail. The PR discussion has established consensus on several key points that the document didn't reflect: - Reframe around applyConfiguration(Configuration) as the core API, decoupled from trigger mechanisms (HTTP, file watcher, operator) - Remove all Java class implementations and handler chains — these belong in the code PR where they're reviewable in context - Call out remove+add with brief per-cluster downtime as deliberate - Call out all-or-nothing rollback as the initial default, consistent with startup behaviour - Move ReloadOptions to deployment-level static configuration rather than per-call parameters - Identify plugin resource tracking as a known gap with pointer to separate proposal - Flag open questions (config granularity, failure behaviour options, drain timeout configurability) - Defer trigger mechanism design as explicit future work Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com> Signed-off-by: Sam Barker <sam@quadrocket.co.uk> Signed-off-by: Urjit Patel <upatel@confluent.io> * Address review feedback on restructured proposal - Fix summary to read as proposed behaviour, not existing - Use "administrators" instead of "operators" for humans to avoid confusion with the Kubernetes operator process - Fix filter config examples (KMS endpoint, key selection pattern) - Clarify failure behaviour is consistent across trigger mechanisms - Note thundering herd as a known trade-off of remove+add - Fix "original proposal" to "earlier iterations" Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com> Signed-off-by: Sam Barker <sam@quadrocket.co.uk> Signed-off-by: Urjit Patel <upatel@confluent.io> * updated hot reload proposal as per the new virtual lifecycle state proposal This proposal introduces a mechanism for applying configuration changes to a running Kroxylicious proxy without a full restart. It defines a core `applyConfiguration(Configuration)` operation that detects changes and restarts only affected virtual clusters. Signed-off-by: Urjit Patel <105218041+Uzziee@users.noreply.github.com> Signed-off-by: Urjit Patel <upatel@confluent.io> * Refine hot reload proposal with new policies and layers Signed-off-by: Urjit Patel <105218041+Uzziee@users.noreply.github.com> Signed-off-by: Urjit Patel <upatel@confluent.io> * Fix wording as per comments Signed-off-by: Urjit Patel <105218041+Uzziee@users.noreply.github.com> Signed-off-by: Urjit Patel <upatel@confluent.io> * refactor Signed-off-by: Urjit Patel <105218041+Uzziee@users.noreply.github.com> Signed-off-by: Urjit Patel <upatel@confluent.io> * Added javadoc to public applyConfiguration API Signed-off-by: Urjit Patel <105218041+Uzziee@users.noreply.github.com> Signed-off-by: Urjit Patel <upatel@confluent.io> * Rename proposal to use PR number Signed-off-by: Urjit Patel <upatel@confluent.io> * Updated design doc as per latest discussion Signed-off-by: Urjit Patel <upatel@confluent.io> * Added concurrency section, PR comments Signed-off-by: Urjit Patel <upatel@confluent.io> * Updated Compatibility section Signed-off-by: Urjit Patel <upatel@confluent.io> * Update document to reflect latest PR comments Signed-off-by: Urjit Patel <upatel@confluent.io> * handled ConcurrentApplyException in trigger examples Signed-off-by: Urjit Patel <upatel@confluent.io> * Fix indentation Signed-off-by: Urjit Patel <upatel@confluent.io> * Rename applyConfiguration to reconfigure and rename associated classes Signed-off-by: Urjit Patel <upatel@confluent.io> --------- Signed-off-by: Urjit Patel <105218041+Uzziee@users.noreply.github.com> Signed-off-by: Urjit Patel <upatel@confluent.io> Signed-off-by: Sam Barker <sam@quadrocket.co.uk> Co-authored-by: Sam Barker <sam@quadrocket.co.uk>
1 parent faf965b commit 8988d36

1 file changed

Lines changed: 487 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)