Decoupling computation and data scheduling in distributed data-intensive applications | Synapse