Cloud-compute is designed to be a platform agnostic framework that facilitates distributing linked numerical models. There are three main components of cloud-compute, the core library cloud-compute, the api access to the functionalities cloud-compute-api, and the software development kits to support the development of plugins.
A user interacts with a user interface, the user interface would interact with the cloud-compute-api, and the cloud-compute-api would use the core cloud-compute library to intercede to the appropriate technologies to execute the run locally or remotely.

There is currently no user interface specific to cloud-compute. The project is being designed to allow multiple user interfaces interact with the api to support their specific workflows and needs. A generic cloud-cloud compute user interface may be made in the future, but it is not immediately planned.
Plugins that adhere to the cloud compute requirements present in the software development kits can be distributed by cloudcompute to compute providers such as cloud vendors like AWS, Azure or Google Cloud.

Core Library
The core library, cloud-compute, provides structure to the interaction between compute providers, event-generators, and registered plugins.
Application Programming Interface
The Application Programming Interface (API), cloud-compute-api, provides a restful service to register plugins, generate simulations, and subscribe to status messages from active computes.
Software Development Kits
The software development kits provide consistent data structures to broker the exchange of data and execution of workflow in plugins. The sdk's seek to simplify the development of plugins and interactions with cloud data storage devices like S3. The sdk's are written in language specific implementations, each targeting general consistency in the utilization of the SDK for developers, with slight differences due to language semantics.
