Benefits of separating workers from the main application (APP):

  • Availability: The application remains lightweight, allowing workers to be scaled independently.
  • Security: Workers lack direct access to Redis and the database, minimizing impact in case of a security breach.

Create Worker Token

To create a worker token, use the local CLI command to generate the JWT and sign it with your AP_JWT_SECRET used for the app server. Follow these steps:

  1. Open your terminal and navigate to the root of the repository.
  2. Run the command: npm run workers token.
  3. When prompted, enter the JWT secret (this should be the same as the AP_JWT_SECRET used for the app server).
  4. The generated token will be displayed in your terminal, copy it and use it in the next step. Workers Token

Configure Environment Variables

Define the following environment variables in the .env file on the worker machine:

  • Set AP_CONTAINER_TYPE to WORKER
  • Specify AP_FRONTEND_URL
  • Provide AP_WORKER_TOKEN

Configure Persistent Volume

Configure a persistent volume for the worker to cache flows and pieces. This is important as first uncached execution of pieces and flows are very slow. Having a persistent volume significantly improves execution speed.

Add the following volume mapping to your docker configuration:

volumes:
  - <your path>:/usr/src/app/cache

Note: This setup works whether you attach one volume per worker, It cannot be shared across multiple workers.

Launch Worker Machine

Launch the worker machine and supply it with the generated token.

Verify Worker Operation

Verify that the workers are visible in the Platform Admin Console under Infra -> Workers. Workers Infrastructure

Configure App Container Type

On the APP machine, set AP_CONTAINER_TYPE to APP.