
Feature toggle framework per Java che abilita l'attivazione delle funzionalità a runtime, accesso basato sui ruoli, attivazione tramite AOP, monitoraggio, tracce di audit e una console web con API REST.
FF4j è un'implementazione del pattern Feature Toggle.
Feature Toggle: Abilita e disabilita le funzionalità a runtime - nessun deployment. Nel tuo codice implementa percorsi multipli protetti da predicati dinamici (if/then/else).
Role-based Toggling: Abilita le funzionalità non solo con valori booleani ma anche gestendo l'accesso con ruoli e gruppi (Canary Release). Supporta diversi framework, a partire da Spring Security.
Strategy-based Toggling: Implementa predicati personalizzati (Strategy Pattern) per valutare se una funzionalità è abilitata. Alcuni sono forniti di serie: liste bianche/nere, basati sul tempo, basati su espressioni. Collega fonti esterne come un motore di regole Drools.
AOP-driven Toggling: Mantieni il tuo codice pulito e leggibile: evita istruzioni if annidate e usa le annotazioni. Grazie a Spring AOP, l'implementazione target viene scelta al runtime, guidata dallo stato delle funzionalità.
Features Monitoring: Per ogni esecuzione di funzionalità, ff4j valuta il predicato; è quindi possibile raccogliere e registrare eventi, metriche per creare dashboard o tracciare curve dell'utilizzo delle funzionalità nel tempo.
Audit Trail: Ogni azione (creazione, aggiornamento, eliminazione, attivazione/disattivazione) può essere tracciata e salvata nell'audit trail per la risoluzione dei problemi. Con la gestione dei permessi (AuthorizationManager) è possibile identificare gli utenti.
Web Console: Amministra FF4j (incluse funzionalità e proprietà) tramite l'interfaccia web. Impacchettata come servlet nella libreria, la esporrai nelle tue applicazioni backend. Quasi 10 lingue disponibili.
Ampia scelta di Database: Il nostro orgoglio: supportiamo oltre 20 tecnologie di database per memorizzare funzionalità, proprietà ed eventi. Stesso modello di business, molteplici implementazioni. Grazie ai punti di estensione è facile creare la tua.
Spring Boot Starter: Importa la dipendenza ff4j-spring-boot-starter nei tuoi microservizi per ottenere immediatamente la console web e l'API REST funzionanti. (Da utilizzare per l'app backend. Ora compatibile con Spring Boot 2x: 👉 SAMPLES)
REST Api: Opera FF4j tramite una WEB API. Questa è la strada da seguire per usare ff4j con altri linguaggi, specialmente frontend javascript. (inoltre, sfrutta FeatureStoreHttp per evitare che i microservizi si connettano direttamente al DB.)
Properties (CMDB): Memorizza non solo lo stato delle funzionalità ma qualsiasi valore di proprietà. Crea proprietà che puoi modificare a runtime. È integrato con i framework più usati come Spring, Archaius, commons-config o Consul.
(Distributed) Cache: Valutare i predicati può mettere pressione sul DB (alto rapporto di hit). ff4j fornisce cache locali e distribuite per aiutare. (modificare una funzionalità invalida anche la cache). Sfruttando JSR-107 supporta la maggior parte delle soluzioni di cache.
Command Line Interface: Per automatizzare le cose o perché le porte web potrebbero essere bloccate (lo sai, produzione...) puoi lavorare tramite SSH usando la nostra Command Line Interface (cli), la nostra Shell #devOps. Interagirà direttamente con gli storage.
JMX and MBeans: Un insieme limitato di operazioni può essere eseguito tramite JMX. ff4j espone alcuni MBean per leggere metriche o attivare/disattivare funzionalità da strumenti esterni (Nagios...). Non tutte le applicazioni sono basate sul web (batch, shell, standalone...).
Maggiori informazioni sono disponibili su ff4j.org o nella Documentazione di Riferimento nel wiki.
Vedi la guida Per Iniziare qui
Home Page
Funzionalità
Monitoraggio
Questo progetto esiste grazie a tutte le persone che contribuiscono. [Contribuisci].
Grazie a tutti i nostri sostenitori! 🙏 [Diventa un sostenitore]
Supporta questo progetto diventando uno sponsor. Il tuo logo apparirà qui con un link al tuo sito web. [Diventa uno sponsor]