
Feature-Toggle-Framework für Java, das Runtime-Feature-Aktivierung, rollenbasierte Zugriffssteuerung, AOP-gesteuertes Toggling, Überwachung, Audit Trails und eine Webkonsole mit REST-API und CLI ermöglicht.
FF4j ist eine Implementierung des Feature Toggle-Musters.
Feature Toggle: Aktivieren und Deaktivieren von Features zur Laufzeit – keine Bereitstellungen erforderlich. In Ihrem Code implementieren Sie mehrere Pfade, die durch dynamische Prädikate geschützt werden (if/then/else).
Rollenbasiertes Umschalten: Aktivieren Sie Features nicht nur mit Flag-Werten, sondern steuern Sie den Zugriff auch über Rollen und Gruppen (Canary Release). Verschiedene Frameworks werden unterstützt, beginnend mit Spring Security.
Strategiebasiertes Umschalten: Implementieren Sie benutzerdefinierte Prädikate (Strategiemuster) um zu bewerten, ob ein Feature aktiviert ist. Einige werden standardmäßig bereitgestellt: White/Black Lists, zeitbasierte, ausdrucksbasierte. Verbinden Sie externe Quellen wie eine Drools-Regelengine.
AOP-gesteuertes Umschalten: Halten Sie Ihren Code sauber und lesbar: Vermeiden Sie verschachtelte if-Anweisungen, verwenden Sie stattdessen Annotationen. Dank Spring AOP wird die Zielimplementierung zur Laufzeit ausgewählt und somit durch Feature-Status gesteuert.
Feature-Überwachung: Für jede Feature-Ausführung wertet ff4j das Prädikat aus, daher ist es möglich, Ereignisse und Metriken zu sammeln und aufzuzeichnen, um schöne Dashboards zu erstellen oder Kurven für die Feature-Nutzung im Zeitverlauf zu zeichnen.
Prüfpfad: Jede Aktion (Erstellen, Aktualisieren, Löschen, Umschalten) kann verfolgt und im Prüfpfad zur Fehlerbehebung gespeichert werden. Mit der Berechtigungsverwaltung (AuthorizationManager) ist es möglich, Benutzer zu identifizieren.
Webkonsole: Verwalten Sie FF4j (einschließlich Features und Eigenschaften) über die Weboberfläche. Als Servlet in der Bibliothek verpackt, können Sie es in Ihren Backend-Anwendungen bereitstellen. Fast 10 Sprachen verfügbar.
Große Auswahl an Datenbanken: Unser Stolz: Wir unterstützen über 20 Datenbanktechnologien zur Speicherung Ihrer Features, Eigenschaften und Ereignisse. Gleiches Geschäftsmodell, mehrere Implementierungen. Dank Erweiterungspunkten ist es einfach, eigene zu erstellen.
Spring Boot Starter: Importieren Sie die Abhängigkeit ff4j-spring-boot-starter in Ihre Microservices, um die Webkonsole und REST-API sofort nutzbar zu machen. (Für die Backend-App zu verwenden. Jetzt kompatibel mit Spring Boot 2x: 👉 BEISPIELE
REST-API: Betreiben Sie FF4j über eine WEB-API. Dies ist der Weg, um ff4j mit anderen Sprachen zu verwenden, insbesondere JavaScript-Frontends. (Nutzen Sie auch FeatureStoreHttp, um zu vermeiden, dass Microservices direkt mit der DB verbunden werden.)
Eigenschaften (CMDB): Speichern Sie nicht nur Feature-Status, sondern beliebige Eigenschaftswerte.. Erstellen Sie Eigenschaften, die Sie zur Laufzeit ändern können. Es ist mit den gängigsten Frameworks wie Spring, Archaius, commons-config oder Consul integriert.
(Verteilter) Cache: Das Auswerten von Prädikaten kann die DB belasten (hohe Trefferquote). ff4j bietet lokale und verteilte Caches zur Unterstützung. (Bearbeiten eines Features räumt auch den Cache). Mit JSR-107 werden die meisten Cachelösungen unterstützt.
Kommandozeilenschnittstelle: Um Dinge zu automatisieren oder wenn Webports blockiert sein könnten (Sie wissen schon, Produktion...), können Sie über SSH mit unserer Kommandozeilenschnittstelle (CLI), unserer Shell #devOps, arbeiten. Sie interagiert direkt mit Speichern.
JMX und MBeans: Ein begrenzter Satz von Operationen kann über JMX durchgeführt werden. ff4j stellt einige MBeans zur Verfügung, um Metriken zu lesen oder Features von externen Tools (Nagios...) umzuschalten. Nicht alle Anwendungen sind webbasiert (Batch, Shell, Standalone...).
Weitere Informationen finden Sie auf ff4j.org oder in der Referenzdokumentation im Wiki.
Hier finden Sie die Einführung
Startseite
Features
Monitoring
Dieses Projekt existiert dank aller Mitwirkenden. [Beitragen].
Vielen Dank an alle unsere Unterstützer! 🙏 [Unterstützer werden]
Unterstützen Sie dieses Projekt, indem Sie Sponsor werden. Ihr Logo wird hier mit einem Link zu Ihrer Website angezeigt. [Sponsor werden]