Customer Success Story: Flagsmith
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.