A Firework instance consists of a set of Firework.Nodes and one Firework.Manager.

Firework.View, inspired by the success of Object Oriented programming, is the dataset and bound functions, which provides partial/full view of the entire distributed shared data and the functions could be applied on the dataset.

Firework.Node denotes as participant/user. As a data producer, it publishes datasets and computing resources, and as a data consumer, it can subscribe datasets from other participants. The data pub/sub is carried out by Firework.Views, which are available for all participants/users. Most computation in Firework occurs within the Firework.Node and the output would be dramatically smaller than the input.

Firework.Manager is responsible for dataset management and job management. The Firework.Manager can analyze and dispatch the jobs to registed Firework.Nodes. the Firework.Manager also retrieves intermediate outputs from Firework.Nodes to facilitate iterative and interactive queries.