Dataloop's FaaS (Function-a-Service)
The Dataloop FaaS system is a system that allows users to write code that will run on top of our dedicated Kubernetes cluster, located near our backend for very low latency requests with minor operational costs.
The system is a serverless platform allowing the automation of data flows and provides the basic building blocks for the platform data workflows.
The main components of the FaaS system are the Service and the Execution.


Packages
Packages describe the source code and its separation to modules and the separation of modules to functions.
Each module also contains the schema for the input of the init functions of the service.
Each function in the module contains the schema for its inputs.
A package.json scheme:
{
"name": "default_package",
"modules": [
{
"name": "default_module",
"className":"ServiceRunner",
"entryPoint": "main.py",
"initInputs": [],
"functions": [
{
"name": "run",
"description": "this description for your service",
"input": [
{
"name": "item",
"type": "Item"
}
],
"output": []
}
]
}
]
}
More on Packages here.
Functions
Functions are used to run Python code on remote machines.
Upon writing a function, one may run it on any container type, allowing auto-scaling and monitoring calls and usage.


Modules
This is not to be confused with Python modules
A module is a Python class, allowing work on Init.
Using the module, you can load a model on startup and then run any function to inference, or proceed to the next step in the pipeline.
More on Functions here.
Services
An entity that describes how a module of a Package should be deployed to hardware.
The only currently supported deployment driver is the Kubernetes driver, so all of our services are deployed to Kubernetes.
Executions
An entity that describes a remote execution of a function on a service.
The execution contains the inputs for the function, tracking of its status, facilitating a retry mechanism and an output/error message for when the execution finishes.
Bots
A bot is a dummy user that has Developer permissions within a project. In Dataloop, bots are used to
run services. Once a service has been deployed, it will log-in using the bot with which the service
was created. All platform API requests will be made with the bot’s token.


More on Services here.
Triggers
An entity that allows the automatic creation of executions based on events in the system such as item created/updated, annotation created/updated, execution finished(useful for later creating pipelines)
Works by specifying a resourceId
, functionName
, resource to track and filters on which entities should invoke the trigger.
More on Triggers here.
Updated 4 months ago
What's Next
Getting Started |