spring-cloud/spring-cloud-netflix
Fix initial Eureka instance replication delay
Contribution Overview
The Engineering Context
This contribution was made to the spring-cloud/spring-cloud-netflixopen-source repository. The work involved understanding the existing codebase, identifying the underlying engineering problem, implementing a focused solution, and validating the change against the project's existing behaviour and testing standards.
Original Issue
Initial Eureka instance status updates can bypass the configured replication delay.
The initial Eureka instance status update could trigger an on-demand registration before the configured initial instance information replication delay had elapsed.
Engineering Problem
Understanding the Problem
During Eureka client initialization, the initial instance status update could trigger an immediate on-demand registration. This bypassed the configured initial replication delay and caused instance information to be replicated earlier than intended.
Solution
Implementation Approach
Changed the initialization flow so the initial Eureka instance status is set before the Eureka client is initialized, preventing that initial status transition from triggering an immediate on-demand registration. Added a regression test to verify the initialization order and preserve the configured replication delay.
Technologies
Engineering Stack
Pull Request
View the Contribution
View the pull request and the associated engineering discussion directly on GitHub.
View Pull Request on GitHub →