Flagsmith allows customers to manage feature flags across web, mobile and server side applications, delivering true continuous integration. Flagsmith can be used on its hosted API, deployed to your own private cloud, or run on-prem. The company is helping clients manage features without deployments, combining the concepts of feature toggles with the flexibility of remote config. Rather than just switching features on and off, you can configure them for individual segments, users and development environments.
As a Feature Flagging service, Flagsmith’s API receives a lot of traffic! That traffic provides signals to the company that it uses to power features within its platform. Prior to using InfluxDB, Flagsmith was using a combination of Google Analytics and an SQL database to manage this data stream, but it wasn’t flexible enough for the company’s needs, and wasn’t going to scale. Flagsmith is now using InfluxDB to track traffic to its API, segmented by customer, project and flag. This allows the company to query that data and provide additional features and services to users.
Flagsmith Founder Ben Rometsch recommends InfluxDB because first and foremost, it’s an open source database. Being able to bring InfluxDB to its Docker and Kubernetes installations without any licensing restrictions is really important to users, both ones that are self-hosting as well as ones that are running on-prem. Flagsmith’s SaaS API runs with the hosted InfluxDB platform, meaning that the company doesn’t have to worry about that side of its infrastructure. Flagsmith also doesn’t need to worry about sizing or pricing; the usage-based model is perfect for the company’s needs. The query language in InfluxDB 2.0 is great, too. Flagsmith has integrated the SDK into its platform and got features out based on the InfluxDB data in a few hours of dev time.
Rometsch suggests paying attention to downsampling as it is super important. When you’re dealing with a large number of data points, it’s vital to downsample. Think about what sort of downsampling time windows you need to deliver the right data in a timely manner. For example, Flagsmith downsampled to 1 minute, 15 minute and 1 hour time windows. The company then uses the appropriate downsample bucket depending on what data it is trying to surface. Because the query language is super powerful, he advises trying to do as much of the processing within the query itself as opposed to in downstream code. Thinking about your schema up front is also super important. He recommends thinking about what you will need to get out of the platform and how you will need to filter on your data up front.
Replaced SQL database
Gained a scalable solution to monitor traffic data
Faster querying
Enabling new functionality which has improved the customer experience
Better observability
Gained insights into web, mobile and server apps
Technologies Used
- InfluxDB
- Docker
- Kubernetes