  Interactive visualization design and research have primarily focused on local
data and synchronous events. However, for more complex use cases---e.g., remote
database access and streaming data sources---developers must grapple with
distributed data and asynchronous events. Currently, constructing these use
cases is difficult and time-consuming; developers are forced to operationally
program low-level details like asynchronous database querying and reactive
event handling. This approach is in stark contrast to modern methods for
browser-based interactive visualization, which feature high-level declarative
specifications. In response, we present DIEL, a declarative framework that
supports asynchronous events over distributed data. Like many declarative
visualization languages, DIEL developers need only specify what data they want,
rather than procedural steps for how to assemble it; uniquely, DIEL models
asynchronous events (e.g., user interactions or server responses) as streams of
data that are captured in event logs. To specify the state of a user interface
at any time, developers author declarative queries over the data and event
logs; DIEL compiles and optimizes a corresponding dataflow graph, and
synthesizes necessary low-level distributed systems details. We demonstrate
DIEL's performance and expressivity through ex-ample interactive visualizations
that make diverse use of remote data and coordination of asynchronous events.
We further evaluate DIEL's usability using the Cognitive Dimensions of
Notations framework, revealing wins such as ease of change, and compromises
such as premature commitments.
