DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

How are you handling the data revolution? We want your take on what's real, what's hype, and what's next in the world of data engineering.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

SBOMs are essential to circumventing software supply chain attacks, and they provide visibility into various software components.

Related

  • MongoDB to Couchbase for Developers, Part 1: Architecture
  • SQL Data Manipulation Language (DML) Operations: Insert, Update, Delete
  • Leveraging Query Parameters for Efficient Data Filtering in REST APIs
  • Navigating the Divide: Distinctions Between Time Series Data and Relational Data

Trending

  • Replacing Legacy Systems With Data Streaming: The Strangler Fig Approach
  • MCP and The Spin-Off CoT Pattern: How AI Agents Really Use Tools
  • The Shift to Open Industrial IoT Architectures With Data Streaming
  • Reducing Hallucinations Using Prompt Engineering and RAG
  1. DZone
  2. Data Engineering
  3. Databases
  4. IFQL and the Future of InfluxData

IFQL and the Future of InfluxData

As data management has evolved, so have databases. Let's see the state of InfluxData and the decisions that have shaped their past, present and future.

By 
Paul Dix user avatar
Paul Dix
·
Feb. 15, 18 · Opinion
Likes (4)
Comment
Save
Tweet
Share
5.1K Views

Join the DZone community and get the full member experience.

Join For Free

With the big news that came out recently about our Series C financing, I thought I should take some time to talk about what the future holds for the InfluxData platform and InfluxDB. For our CEO Evan Kaplan's perspective see here.

To understand the future direction, I should talk a little bit about the last five years of work and what we've learned in the process. In the beginning of the company I built a "time series API" with web services written in Scala using Cassandra as a backing data store and Redis as a caching and indexing layer. The initial version of this API was RESTful. About six months later, I implemented this as a single binary in Go using LevelDB as the underlying storage engine, but kept the same RESTful API with some key additions.

While that original application didn't live very long, we did see a pattern. Many organizations and startups were repeating the same effort to create a time series API for their applications and monitoring needs. Seeing this common repeated effort drove us a year later in 2013 to open source this infrastructure as a new open source project: InfluxDB. We also used the fresh start to change the API to something using a query language that looks much like SQL. Its key advantage at the time was that it looked familiar to developers making the learning curve easy.

The Importance of the Platform

In the early days, we were just building the database, but we saw users adopting the technology and repeating effort to solve a common set of problems. Given our success with the database to solve a common set of user problems, we developed the vision to create an entire platform for working with time series data. We'd not only help developers store and query it, but we'd also help them collect it, process and monitor it, and visualize it. Our view then and now was that if we built the entire platform around time series data, we'd enable developers to build their solutions much faster (what I call Time to Awesome). Developers don't want to be shaving infrastructure and architecture yaks. They want to build their apps and focus on the business problems they're trying to solve with code.

So in 2014 I raised the Series A round with the intention of hiring a team to build out the other components of the platform. First we built Telegraf (the data collector), then we built Kapacitor (the processing and monitoring agent), and finally we built out Chronograf (the UI and visualization engine). We named it the TICK Stack as an homage to individual points in a financial time series, each referred to as a tick. But the TICK Stack is an artifact of how this company was built over time. The overall vision is not to build four separate applications, but to create a platform that helps developers solve problems related to time series data.

The Importance of the Data Language

The SQL like language that InfluxDB currently offers is also an artifact of the evolution of database development over the last 10 years. As developers, we went from SQL to NoSQL to NewSQL, and now it seems we're back to SQL.

However, I think there are opportunities to create new ways of working with time series data that aren't tied to SQL. While SQL is a great tool, it's not the ONLY tool. Time series data aren't sets and mostly aren't relational. They're more frequently accessed and processed like matrices, which could be better queried, processed and analyzed in a language other than SQL. So we've started building a new query language specifically designed for working with time series data called IFQL. As a functional language, it allows users to define complex queries through a set of functional transformations on data. While we're calling it a query language, it's quickly becoming much more than that, allowing you to do complex analytics within the language itself. It also lets users recompose parts of query functions with user-defined functions, letting them create shortcuts for common functionality. Users will be able to build IFQL up around their problem domain. For more details on IFQL, check out the slides from my talk at InfluxDays NYC.

We also wanted to create a language that would make it easier for UI developers to create interesting builders and visualization tools. We expect that most users won't even need to work with the query language to begin with, but use Chronograf, Grafana or some other user interface for interacting with their data. We won't be locking down the IFQL language design until we've shipped a query builder for it inside Chronograf. This will be to validate that the language makes it easy for UI designers to work with.

An API Driven Platform

We are going to unify the entire stack behind a common API. It will be a single entry point for developers exposed through gRPC, REST, and possibly, GraphQL. It will be designed to be multi-tenant from Day One with organizations, users, API tokens, and access rules. It will give the user the ability to not only write and query data, but also to define rules for collection, monitoring and alerting, background processing, meta-data associated with series, and user data like dashboards and annotations.

The language of the stack for working with data will be IFQL while the API will unify the rest of the stack in one place. Some of this we're already shipping as open source (like IFQL). Other parts will be built and open sourced through the course of this year.

The future of InfluxData isn't just as a Time Series Database. We're creating a platform for working with time series data. And our goal is to make developers far more productive when creating applications around metrics and events. Whether you're visualizing the data, collecting and scraping, monitoring and alerting, or transforming to send to other sources, my goal is that InfluxData will provide everything out of the box. Look for us to invest heavily to deliver on that goal and to continue to contribute great open source software to the community.

Time series Database Open source Data (computing) Relational database dev API Query language

Published at DZone with permission of Paul Dix, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • MongoDB to Couchbase for Developers, Part 1: Architecture
  • SQL Data Manipulation Language (DML) Operations: Insert, Update, Delete
  • Leveraging Query Parameters for Efficient Data Filtering in REST APIs
  • Navigating the Divide: Distinctions Between Time Series Data and Relational Data

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • [email protected]

Let's be friends: