
Feature-Toggle-Framework für Java, das die Aktivierung von Features zur Laufzeit, rollenbasierte Zugriffskontrolle, AOP-gesteuertes Umschalten, Überwachung, Audit-Trails und eine Web-Konsole mit REST-API ermöglicht.
FF4j ist eine Implementierung des Feature Toggle-Musters.
Feature Toggle: Aktivieren und Deaktivieren von Features zur Laufzeit - keine Deployments. Implementieren Sie in Ihrem Code mehrere Pfade, die durch dynamische Prädikate (if/then/else) geschützt sind.
Rollenbasiertes Toggling: Aktivieren Sie Features nicht nur über Flag-Werte, sondern steuern Sie den Zugriff auch über Rollen und Gruppen (Canary Release). Verschiedene Frameworks werden unterstützt, beginnend mit Spring Security.
Strategiebasiertes Toggling: Implementieren Sie benutzerdefinierte Prädikate (Strategiemuster), um zu bewerten, ob ein Feature aktiviert ist. Einige sind standardmäßig enthalten: Weiß-/Schwarze Listen, zeitbasiert, ausdrucksbasiert. Binden Sie externe Quellen wie eine Drools-Regel-Engine an.
AOP-gesteuertes Toggling: Halten Sie Ihren Code sauber und lesbar: Vermeiden Sie verschachtelte if-Anweisungen und verwenden Sie stattdessen Annotationen. Dank Spring AOP wird die Zielimplementierung zur Laufzeit ausgewählt und ist damit von den Feature-Status abhängig.
Feature-Monitoring: Bei jeder Ausführung eines Features wertet ff4j das Prädikat aus. Dadurch ist es möglich, Ereignisse und Metriken zu sammeln und aufzuzeichnen, um ansprechende Dashboards zu berechnen oder Kurven zur Feature-Nutzung im Zeitverlauf zu zeichnen.
Audit-Trail: Jede Aktion (Erstellen, Aktualisieren, Löschen, Umschalten) kann zur Fehlerbehebung im Audit-Trail nachverfolgt und gespeichert werden. Mit der Berechtigungsverwaltung (AuthorizationManager) ist es möglich, Benutzer zu identifizieren.
Web-Konsole: Verwalten Sie FF4j (einschließlich Features und Properties) über die Weboberfläche. Als Servlet in die Bibliothek gepackt, können Sie sie in Ihren Backend-Anwendungen bereitstellen. Fast 10 Sprachen verfügbar.
Große Auswahl an Datenbanken Unser Stolz: Wir unterstützen 20+ Datenbanktechnologien, um Ihre Features, Properties und Ereignisse zu speichern. 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 Web-Konsole und die REST-API sofort zum Laufen zu bringen. (Für die Backend-Anwendung zu verwenden. Jetzt kompatibel mit Spring Boot 2x: 👉 SAMPLES
REST-API Bedienen Sie FF4j über eine Web-API. Dies ist der Weg, um ff4j mit anderen Sprachen zu verwenden, insbesondere mit JavaScript-Frontends. (Nutzen Sie außerdem FeatureStoreHttp, um zu vermeiden, dass sich Microservices direkt mit der Datenbank verbinden.
Weitere Informationen finden Sie auf ff4j.org oder in der Referenzdokumentation im Wiki.
Hier finden Sie die ersten Schritte
Startseite
Features
Monitoring
Dieses Projekt existiert dank aller Menschen, die mitwirken. [Mitwirken].
Danke an alle unsere Unterstützer! 🙏 [Unterstützer werden]
Unterstützen Sie dieses Projekt, indem Sie Sponsor werden. Ihr Logo erscheint hier mit einem Link zu Ihrer Website. [Sponsor werden]
Properties (CMDB) Speichern Sie nicht nur Feature-Status, sondern auch beliebige Property-Werte. Erstellen Sie Properties, die Sie zur Laufzeit ändern können. Es ist in die am häufigsten verwendeten Frameworks wie Spring, Archaius, commons-config oder Consul integriert.
(Verteilter) Cache Die Auswertung von Prädikaten kann die Datenbank belasten (hohe Trefferquote). ff4j bietet lokale und verteilte Caches zur Unterstützung an. (Das Bearbeiten eines Features räumt auch den Cache auf). Durch die Nutzung von JSR-107 werden die meisten Cache-Lösungen unterstützt.
Kommandozeilenschnittstelle (CLI) Um Dinge zu automatisieren oder weil Web-Ports blockiert sein können (Sie kennen das ja, Produktion...), können Sie über SSH mit unserer Kommandozeilenschnittstelle (CLI), unserer Shell #devOps, arbeiten. Sie interagiert direkt mit den Speichern.
JMX und MBeans Über JMX kann eine begrenzte Menge an Operationen ausgeführt werden. ff4j stellt einige MBeans bereit, um Metriken zu lesen oder Features aus externen Tools (Nagios...) umzuschalten. Nicht alle Anwendungen sind webbasiert. (Batch-Jobs, Shell, Standalone...)