UW Interactive Data Lab
IDL logo

Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive Visualization

Arvind Satyanarayan, Ryan Russell, Jane Hoffswell, Jeffrey Heer. IEEE Trans. Visualization & Comp. Graphics (Proc. InfoVis), 2016
Figure for Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive Visualization
The Reactive Vega dataflow graph created from a declarative specification for a interactive index chart of streaming financial data. As streaming data arrives from the Yahoo! Finance API, or as a user moves their mouse pointer across the chart, an update cycle propagates through the graph and triggers an efficient update and re-render of the visualization.
Materials
Abstract
We present Reactive Vega, a system architecture that provides the first robust and comprehensive treatment of declarative visual and interaction design for data visualization. Starting from a single declarative specification, Reactive Vega constructs a dataflow graph in which input data, scene graph elements, and interaction events are all treated as first-class streaming data sources. To support expressive interactive visualizations that may involve time-varying scalar, relational, or hierarchical data, Reactive Vega’s dataflow graph can dynamically re-write itself at runtime by extending or pruning branches in a data-driven fashion. We discuss both compile- and run-time optimizations applied within Reactive Vega, and share the results of benchmark studies that indicate superior interactive performance to both D3 and the original, non-reactive Vega system.
BibTeX
@article{2016-reactive-vega-architecture,
  title = {Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive Visualization},
  author = {Satyanarayan, Arvind AND Russell, Ryan AND Hoffswell, Jane AND Heer, Jeffrey},
  journal = {IEEE Trans. Visualization \& Comp. Graphics (Proc. InfoVis)},
  year = {2016},
  url = {https://uwdata.github.io/papers/reactive-vega-architecture},
  doi = {10.1109/TVCG.2015.2467091}
}