Uploaded image for project: 'Magnolia'
  1. Magnolia
  2. MAGNOLIA-9244

Align liveness & readiness with standard MicroProfile Health API


    • Yes
    • Yes
    • Yes

      First, we review vitals applicability to DX Core 6.3; the main cause for review is:

      • DX Core deployment is just the magnolia tomcat webapp
        • it doesn't have the vitals-webapp to consume vitals from.
        • it would be overhead for customers' to add in their own Dockerfiles, most likely they won't bother
      • also consuming over JMX is rather inconvenient → let's reconsider an embedded web facade?

      Meanwhile, usage points are interesting:

      • MagnoliaServletContextListener: unlikely to remain useful, because if Magnolia is down, it's not gonna be able to respond
      • ModuleManagerImpl otoh is interesting, as a failed module start is a good readiness signal to stop accepting incoming requests

      Therefore two main points for review:

      1. which API to use
      2. how to expose

      API: do we still need the bespoke probes and similar, or can we reconsider MP Health?

      • MP Health would require a little Guice integration (no CDI), we have a bit of that today already too (see VitalsSupportModule)
      • we may not need probes to be auto-discoverable and instantiated by annotation, given our states evolve tightly within e.g. ModuleManager implementation
        • register and update HealthCheck probes in-place programmatically instead?


      • after we validate the above, we should know better. e.g. could register a new endpoint instead of the former StatusEndpoint
      • implement /.rest/health/live and /.rest/health/ready and delegate to the underlying VitalsManager?
      • => MGNLREST ticket

        Acceptance criteria

              ajuran Antonín Juran
              mgeljic Mikaël Geljić
              0 Vote for this issue
              2 Start watching this issue

                Work Started:

                  Task DoR