Seperate Workers from App
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:
- Open your terminal and navigate to the root of the repository.
- Run the command:
npm run workers token
. - When prompted, enter the JWT secret (this should be the same as the
AP_JWT_SECRET
used for the app server). - The generated token will be displayed in your terminal, copy it and use it in the next step.
Configure Environment Variables
Define the following environment variables in the .env
file on the worker machine:
- Set
AP_CONTAINER_TYPE
toWORKER
- 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:
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.
Configure App Container Type
On the APP machine, set AP_CONTAINER_TYPE
to APP
.