ROADMAP
Ontkoppeling van HealthService en Health Checks
Na versie 1.0 kan de architectuur verder worden vereenvoudigd door HealthService volledig los te koppelen van de concrete health checks. Op dit moment is HealthService naast orchestrator ook eigenaar van alle beschikbare checks, waardoor bij iedere nieuwe check de service zelf moet worden aangepast. Het doel is om HealthService uitsluitend verantwoordelijk te maken voor het uitvoeren van checks en het berekenen van de Health Score, zonder kennis van welke checks daadwerkelijk beschikbaar zijn.
Hiervoor wordt een eenvoudig HealthCheckInterface geïntroduceerd met uitsluitend de methode execute(): HealthResult. Alle bestaande en toekomstige checks implementeren dit contract. Daarnaast wordt een HealthCheckProvider toegevoegd die verantwoordelijk is voor het beschikbaar stellen van alle geregistreerde checks. HealthService ontvangt vervolgens alleen nog een collectie van HealthCheckInterface-implementaties en verwerkt deze generiek. Hierdoor kunnen nieuwe health checks worden toegevoegd zonder wijzigingen aan de businesslogica van HealthService, blijft de orchestratielaag stabiel en sluit de implementatie nog beter aan bij de architectuurprincipes van uitbreidbaarheid, verantwoordelijkheidsscheiding en het Open/Closed Principle.
Ontwerpfilosofie
SimpleHealthMonitor blijft zich ontwikkelen volgens het KISS-principe (Keep It Simple, Stupid).
Nieuwe functionaliteit wordt uitsluitend toegevoegd wanneer deze aantoonbare meerwaarde biedt voor websitebeheerders of de onderhoudbaarheid van de software verbetert. Architectuurwijzigingen worden alleen doorgevoerd wanneer zij de bestaande code daadwerkelijk vereenvoudigen en niet uitsluitend om theoretische ontwerpprincipes verder door te voeren.
