GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ff4j/ff4j: Feature Flags for Java made easy

BranchesTags
Open more actions menu

Latest commit

 

History

1,474 Commits
1,474 Commits

Folders and files

NameName
Last commit message
Last commit date
.claude/skills/new-store
.claude/skills/new-store
 
 
.github
.github
 
 
ff4j-aop
ff4j-aop
 
 
ff4j-cli
ff4j-cli
 
 
ff4j-config-properties
ff4j-config-properties
 
 
ff4j-config-yaml
ff4j-config-yaml
 
 
ff4j-core
ff4j-core
 
 
ff4j-jmx
ff4j-jmx
 
 
ff4j-security-shiro
ff4j-security-shiro
 
 
ff4j-security-spring
ff4j-security-spring
 
 
ff4j-store-arangodb
ff4j-store-arangodb
 
 
ff4j-store-archaius
ff4j-store-archaius
 
 
ff4j-store-aws-dynamodb
ff4j-store-aws-dynamodb
 
 
ff4j-store-aws-ssm
ff4j-store-aws-ssm
 
 
ff4j-store-cassandra
ff4j-store-cassandra
 
 
ff4j-store-commonsconfig
ff4j-store-commonsconfig
 
 
ff4j-store-consul
ff4j-store-consul
 
 
ff4j-store-couchbase
ff4j-store-couchbase
 
 
ff4j-store-couchdb
ff4j-store-couchdb
 
 
ff4j-store-ehcache
ff4j-store-ehcache
 
 
ff4j-store-elastic
ff4j-store-elastic
 
 
ff4j-store-gcp-datastore
ff4j-store-gcp-datastore
 
 
ff4j-store-hazelcast
ff4j-store-hazelcast
 
 
ff4j-store-hbase
ff4j-store-hbase
 
 
ff4j-store-ignite
ff4j-store-ignite
 
 
ff4j-store-jcache
ff4j-store-jcache
 
 
ff4j-store-mongodb
ff4j-store-mongodb
 
 
ff4j-store-neo4j
ff4j-store-neo4j
 
 
ff4j-store-redis
ff4j-store-redis
 
 
ff4j-store-spring-cloudconfig
ff4j-store-spring-cloudconfig
 
 
ff4j-store-springjdbc
ff4j-store-springjdbc
 
 
ff4j-strategy-drools
ff4j-strategy-drools
 
 
ff4j-test
ff4j-test
 
 
ff4j-utils-json
ff4j-utils-json
 
 
ff4j-web
ff4j-web
 
 
ff4j-webapi-client
ff4j-webapi-client
 
 
ff4j-webapi-jersey2x
ff4j-webapi-jersey2x
 
 
ff4j-webapi
ff4j-webapi
 
 
src/license
src/license
 
 
.gitignore
.gitignore
 
 
.java-version
.java-version
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE.txt
LICENSE.txt
 
 
README.md
README.md
 
 
RELEASE.MD
RELEASE.MD
 
 
pom.xml
pom.xml
 
 

Repository files navigation

✨✨✨ FF4J - Feature Flipping for Java ✨✨✨

Build Status Maven Central Codacy Badge

chat License Apache2 codecov

Backers on Open Collective Sponsors on Open Collective

FF4j, is an implementation of the Feature Toggle pattern.

🤘Features

  • Feature Toggle: Enable. and disable features at runtime - no deployments. In your code implement multiple paths protected by dynamic predicates (if/then/else).

  • Role-based Toggling: Enable features not only with flag values but also drive access with roles and groups (Canary Release). Different frameworks supported starting by Spring Security.

  • Strategy-based Toggling: Implement custom predicates (Strategy Pattern) to evaluate if a feature is enabled. Some are provided out of the box: White/Black lists ,Time based, Expression based. Connect external source like a Drools rule engine.

  • AOP-driven Toggling: Keep your code clean and readable: Avoid nested if statements but use annotations. Thanks to Spring AOP target implementation is pick at runtime, and thus driven by feature statuses.

  • Features Monitoring: For each features execution, ff4j evaluates the predicate therefore it's possible to collect and record events, metrics to compute nice dashboards or draw curves for features usage over time.

  • Audit Trail: Each action (create, update, delete, toggles) can be traced and saved in the audit trail for troubleshooting. With permissions management (AuthorizationManager) it's possible to identify users.

  • Web Console: Administrate FF4j (including features and properties) with the web UI. Packaged as a servlet in the library you will expose it in your backend applications. Almost 10 languages available.

  • Wide choice of Databases Our proud: we support 20+ databases technologies to store your features, properties and events. Same business model, multiple implementations. Thanks to extension points it's easy to build your own.

  • Spring Boot Starter Import ff4j-spring-boot-starter dependency in your microservices to get the web console and rest api working immediately. (To be used for the backend app. Now compliant with Spring Boot 2x: 👉 SAMPLES

  • REST Api Operate FF4j through a WEB API. This is the way to go to use ff4j with others languages, specially javascript frontends.(also: leverage on FeatureStoreHttp to avoid microservices to directly connect to the DB.

  • Properties (CMDB) Store not only feature statuses but any property value.. Create properties you can change at runtime . It is integrated with most used frameworks like Spring, Archaius, commons-config or Consul.

  • (Distributed) Cache Evaluating predicates may put pressure on DB (high hit ratio). ff4j provides local and distributed caches to help. (edit feature also evict cache). Leveraging JSR-107 it supports most of cache solutions.

  • Command Line Interface To automate things or because web ports may be blocked (you know, production...) you can work through SSH using our Command Line Interface (cli), our Shell #devOps. It will interact directly with storages.

  • JMX and MBeans Limited set of operations can be performed through JMX. ff4j exposes some Mbeans to read metrics or toggle features from external tools (Nagios...). Not all applications are web based.(batches, shell, standalone...)

More information can be found at https://ff4j.github.io/ or Reference Documentation in the wiki.

🔨 Getting Started

Check the Getting started here

👀 Screenshot

Home Page

Features

Monitoring

👤Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

About

Feature Flags for Java made easy

ff4j.github.io

Topics

featureflippingtoggle

Resources

Readme
Apache-2.0 license

Contributing

Contributing
Activity
Custom properties

Stars

1.5k stars

Watchers

47 watching

Forks

291 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.