Getting started with Custom Blueprints

This guide gives a quick overview of what custom blueprints are and the problems they are designed to solve.

Workflows and components

The Indico platform allows users to create workflows to automate business processes. Each workflow is composed of components, and data flows between components along pre-configured paths. When a new workflow is created, it comes pre-configured with an Input component, and users add other components as needed.

A workflow with four components: Input, Filter (represented by the green diamond), Model named "invoices-model", and Output

The Indico platform comes with dozens of out-of-the-box blueprints, including several filters and 3rd party models.

You can view Indico's out-of-the-box components by selecting GALLERY in the left-hand rail

Custom blueprints & custom components

If these pre-existing blueprints do not meet your needs, you can create your own custom blueprints.

At this time, the platform offers the ability to customize

  • Filters - these components control the flow of training data and submissions through a Workflow
  • Models - these components generate predictions
  • Outputs - these components transform the default submission result file into a format appropriate for downstream applications

Blueprint vs. Component

  • A component is a unit of work within a specific workflow, similar to an object in the paradigm of object-oriented programming (OOP).
  • A blueprint is a generic template that ties together functions but does not belong to a specific workflow, akin to a class in the OOP world.

Components are created based on blueprints.

How Indico runs components

The code for custom blueprints must be packaged into one or more Docker containers and deployed as services.

Indico uses a custom queue framework called Jetstream to manage tasks. This framework is based on Celery and uses 🐇rabbitmq as a broker. You can inform the Indico platform that you have created a new component by Registering a Custom Blueprint. The platform will use the information you provide to run your component whenever data is added to the dataset or a submission is sent to the workflow.

Each component runs in a specific service and pulls new tasks from a specific queue. These queues are automatically created as part of Deploying a Custom Blueprint. There are one or more rabbitmq pods in a cluster, which will have a list of queues. Learn more about viewing these queues in Verifying Deployment.