Theory

Handlers - Some code that handles some things. Too abstract, right?

Ok, more specifics.

Deep provides an expanding list of code execution reasons and environments.

Providers

Снимок экрана 2022-03-02 в 00.29.07.png

JsDockerIsolationProvider using now in DeepLinks available here: https://github.com/deep-foundation/js-docker-isolation-provider

Providers are types of relationships that help us describe in what environment and how to run code.

In theory...

Execution Providers are made to describe execution standards. For example, there is a JS code execution standard as the initial deep core package. This implementation of the execution provider does not support npm installation of dependencies, and is the initial implementation. It is understood that we can create execution providers and publish them for any existing languages in different versions, including those with dependency support.

Isolation Provider are made to describe a way to isolate and virtualize running code. For example, the JSDockerIsolationProvider contains as a string a Docker Image in the https://hub.docker.com/ namespace (as every instance of the DockerIsolationProvider type should contain).

If you create your own instance of the IsolationProvider type as a competitor to the DockerIsolationProvider, you can describe other isolation methods such as lxd, webassembly, and any others. We will moderate and maintain a list of ready-made IsolationProviders.

<aside> ❕ Thanks to this model, IsolationProviders will allow you to describe any means of remote isolation and launch paradigms, as microcontrollers, IOT and many more in clouds.

</aside>


If you want to see it manually active this query in Deep.Case

{
  "_or": [
    {
      "type_id": {
        "_in": [
          32,
          81,
          80,
          84
        ]
      }
    }
  ]
}

Снимок экрана 2022-03-02 в 00.42.08.png

Untitled


Handlers

Снимок экрана 2022-03-02 в 01.03.41.png

Handler is a link saying that some handler.to link can be executed with some handler.from link (must be Supports instance).

A link with code as value is not yet executable just because it simply exists. The Handler link answers the question of what can be executed (Handler.to with code link) and how it must be executed (Handler.from with Supports link).

Such a handler is already workable if you create it. However, it is necessary to bind it to some emitter. Without an emitter, a handler won't do anything.

Promises

If the reason behind handling are link, then within insert/update/delete operation will be created Then and Promise links.