Key Concepts

In this help section, we are going to go over some vital concepts to ensure you utilize Job Pools optimally.

Job Pool ID

Job Pool ID is the unique ID generated by Catalyst when a Job Pool is created. This ID will be used to identify the Job Pool. You can use this ID to refer to a Job Pool while performing actions using the API or SDK.

catalyst_job_scheduling_showcase_id_jobpool

Different States of Job Execution

When a job is being executed from the Job Pool, there are four possible states the execution can result in:

  • Success: When the job successfully triggers the configured target type.
  • Pending: When there is a dispatch delay
  • Running: When the job is currently being executed
  • Failure: When the job execution fails due to any of the following reasons:
    • Failure: Typically occurs if you have closed the code file inappropriately.
    • Timeout: Typically occurs if your function exceeds 15 minutes.
    • Code_Exception: Typically occurs if your code is faulty.
    • Not_Found: Typically occurs if you have deleted the target function.
    • Unintentional_Termination: Typically occurs in node runtimes, when you call the exit() method or do not close the context of the function.

These states will also be displayed in the Dashboard and can be used to track the status of a job.

Note: You can also use the Application Alerts component to configure alerts that notify you via email when a job enters any of the above mentioned states.

Ideal Memory Allocation to Avoid Dispatch Delay

This is a feature of Job Scheduling that you have to configure when you create a Job Pool. Memory allocation allows you to allocate sufficient memory for your Job Pool to ensure jobs are executed by the Job Pool promptly without any dispatch delay.

catalyst_job_scheduling_job_pool_memeory_allocation

Memory allocation is only required for Function Job Pool. In a Function Job Pool, the jobs will be executed to trigger a job function. The jobs in the Job Pool and the job function(s) they trigger all occur in the same instance as the Job Pool. If the memory is not allocated properly, this could potentially create a dispatch delay. So ensure you configure memory allocation carefully

You need to allocate memory for your Job Pool, considering the memory that triggered function will require to be executed. For a Job Pool to execute a Job successfully and trigger a function, the allocated memory for a Job Pool must be higher than the memory allocated for all the functions being triggered by the jobs associated to that particular Job Pool. The maximum memory allocation possible is 10GB.

With Function Job Pool, you have the flexibility to allocate memory based on your requirement. For example, you can either have 10 Job Pools each of 1GB, or one Job Pool with a memory of 10GB.

Imagine this hypothetical, where you have an ecommerce platform, where you provide services based on a subscription pricing model. You have two minimum requirements that you can fulfill with Job Scheduling. One is to trigger a function that requires 3GB memory to deliver prompt reminders to renew subscription, and the other job triggers a function that requires 2GB to deliver emails containing offers and latest product details to the end-user. Both these functions can be triggered using a singular Functions Job Pool of 10GB.

However, this is not an efficient way to use Job Pools, as there is a possibility of dispatch delay when demand rises to create and execute several jobs to trigger the functions. An illustration of this type of workflow is shown below:

catalyst_job_scheduling_jobpool_dispatch_dig

The efficient manner to ensure you are never in such a situation is to use two different function Job Pools. One of them can be a priority Job Pool that will always have the memory allocation to execute priority jobs such as sending out payment reminders. The other Job Pool can execute jobs of flexible priority where dispatch delays, should they occur, do not have drastic consequences to the rest of the workflow. An illustration of the ideal workflow to ensure all your jobs are executed promptly avoiding any dispatch delay is shown below.

catalyst_job_scheduling_jobpool_success_exec_dig

The key point to comprehend is that the ideal manner to employ Job Pools is where your Job Pools always have higher memory allocation than the job functions the jobs are triggering.

Note:
  • The default maximum memory allocation permitted for a Job Pool in a single Catalyst project is 10GB. You can always edit a Job Pool’s memory allocation, to accommodate sudden rise in demands. But, the ideal manner will always be employing enough Job Pools with proper memory allocation.

  • While there is no memory allocation required for the other types of Job Pool, you do have to configure the maximum count of the services that can be triggered by the jobs in the job pool. The max count of AppSail services, circuits or, third-party URLs that can be triggered in parallel in a single Job Pool is 10.

Last Updated 2025-06-03 18:19:55 +0530 +0530