Skip to content

Suggestion: Include Predefined Checks for Supervision Tree Readiness #5

@eric0fw

Description

@eric0fw

Hi,

First, I want to thank you for developing Existence. I have been exploring its features and it seems like an excellent tool for managing health checks in Elixir applications.

I have a suggestion for a predefined check that I believe could enhance the library: a built-in check to ensure that the entire supervision tree has fully started, utilizing a "terminator" process or similar mechanism. This would be particularly useful for readiness probes in Kubernetes deployments.

Proposed Feature:

  • Supervision Tree Readiness Check: A predefined health check that verifies whether the entire supervision tree is fully started. This could be implemented by adding a special "terminator" process as the last child in the supervision tree. The readiness check would then confirm that this process is running, indicating that all prior processes have been started successfully.

Benefits:

  1. Reliability: Ensures that all necessary processes are up and running before marking the application as ready.
  2. Ease of Use: Provides a ready-to-use solution for a common requirement, reducing the need for custom implementations.
  3. Kubernetes Integration: Enhances the ability to use Existence with Kubernetes readiness probes, providing a more robust setup for production deployments.
  4. Simplified Readiness Check: This check wouldn't be used on its own but could be useful in determining readiness without the need to implement numerous individual checks.

Considerations:

  • Flaws/Challenges: I am curious if there are any potential flaws or challenges you foresee with this approach. For example, are there edge cases or scenarios where this might not be reliable or could cause issues?

I appreciate your time and consideration of this suggestion. Looking forward to hearing your thoughts!

Best regards,

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions