# Base Object and Actor Backend Hero is a program that runs scripts in contexts on behalf of a peer. Hero aims to support a language sufficient to support all of one's digital actions. As such, hero can become a tool of digital sovereignty, allowing people and groups to own their own structured data and functionality to act on it. ## Terminology | Term | Definition | |---------------|-----------------------------------------------------------------------------| | Hero | A program that runs scripts in various contexts on behalf of a peer. | | Heroscript | A script that runs in a confined environment on behalf of a peer. | | Rhai | A scripting language integrated into the Hero environment for script execution. | ## Core In its core, a [supervisor](#supervisor) dispatches jobs to execute scripts to [actors](#actor) over redis. Actors spawn appropriate engine instances to execute scripts within the defined [confines]() of the job. ### [Supervisor](./core/supervisor) Component responsible for distributing jobs to actors over Redis. ### [Job](./core/job) A unit of work that executes a Rhai or Hero script. ### [Actor](./core/actor) An entity that processes jobs dispatched by the supervisor. ## Interfaces The backend supports an OpenRPC interface over Websocket and Unix sockets, and a wasm app interface for simple debugging logging etc. ### Websocket ### Unix ### WASM