Welcome to the documentation for Juttle, a dataflow programming language!
Juttle is an analytics system and language for developers built upon a stream-processing core and targeted for presentation-layer scale. Juttle gives you an agile way to query, analyze, and visualize live and historical data from many different big data backends or other web services. Using the Juttle dataflow language, you can specify your presentation analytics in a single place with a syntax modeled after the classic unix shell pipeline. There is no need to program against data query and visualization libraries. Juttle scripts, or juttles, tie everything together and abstract away the details.
While the Juttle syntax embraces the simplicity of the unix pipeline design pattern, it also includes a number of more powerful language concepts including functions, dataflow subgraph notation, native expressions, modules, scoping, and special aggregation functions called reducers. The details of the language and the dataflow model are desribed in the Juttle Language Reference.
In Juttle, you read data from a backend service, analyze it using dataflow processors, and send derived data or synthesized events to some output, e.g., streaming results to a browser view, writing data to a storage backend, posting http events to slack, hipchat, pagerduty, etc.
Juttle presently includes a number of adapters for various big-data backends and we are continually adding more. This means that you can interoperate with your existing infrastructure, whether it is a cassandra cluster, elastic search, a SQL database, something from the hadoop ecosystem, and so forth. If a particular backend is not yet supported, an adapter for it can be added in a relatively straightforward manner using Juttle's backend adapter API.
Here are some ideas of what you can do with Juttle:
- embedding analytics-driven visualization in your application,
- providing users of your software with highly customizable views by tapping into data residing in your system's storage backends,
- composing custom dashboards or "wallboards" that run continuously for your internal users (ops teams, dev teams, business users, etc),
- building custom dataflow microservices around a specific analytics workflow like smart alerting, anomaly detection, or custom application logic,
- exploring your data interactively using Juttle's rapid prototyping model,
- introspecting and debugging your big-data pipeline, and
- prototyping and experimenting with dataflow concepts applied to your data before implementing them in detail and in production using other stream-processing systems like Spark or Storm.
How To Navigate
Use the left sidebar menu for navigating the sections. Getting started with the Juttle Overview should orient you reasonably well; the rest of the Concepts section has background information on the language design.
The search feature (powered by lunr.js in mkdocs) can be helpful too, see the search box in upper left corner.
Juttle examples are provided as code snippets; copy them to run in your own environment.
Embedded Juttle examples are coming soon.
These docs are just coming together.
If you find a problem in the documentation, members of juttle GitHub project can edit the articles inline by following "Edit on GitHub" link. Small obvious fixes may be committed directly to master. If discussion is needed, please put up a PR on a branch.