This project presents a framework for runtime service discovery that supports both proactive and reactive modes. In pull mode, queries are executed when a replacement service is needed. In push mode, queries are subscribed to and executed proactively in parallel with the application to identify potential replacement services. The framework allows complex queries over service descriptions to find structurally, behaviorally, and contextually matching services. It aims to address limitations of prior approaches and maintain up-to-date candidate replacement services for use if needed.