# funcX - Federated function as a service [funcx-faas/funcX](https://github.com/funcx-faas/funcX) > funcX is a distributed [[faas|Function as a Service (FaaS)]] platform that > enables flexible, scalable, and high performance remote function execution. > Unlike centralized FaaS platforms, funcX allows users to execute functions on > **heterogeneous** remote computers, from laptops to campus clusters, clouds, > and supercomputers. - `funcX` cloud hosted service - `funcX` endpoints ## Getting started [funcX documentation](https://funcx.readthedocs.io/en/latest/) How it works: - Register a function by specifying the function body and the input arguments - Execute the function by _also_ specifying the endpoint ID ![funcX-model](https://funcx.readthedocs.io/en/latest/_images/funcX-model.png) - Register a function: `func_uuid = fxc.register_function(hello_world)` - Run a function: `res = fxc.run(endpoint_id=<>, function_id=<>)` - Retrieving results: `fxc.get_result(res)` - Batch of tasks can be added Similar to [[parsl|Parsl]], dependencies must be imported inside the function body. --- ## Issues - Is there a way to run scripts, not just Python apps? e.g. `@bash_app in`[[parsl|Parsl]]. To merge these two, we must solve this problem.