id | title | hide_title |
---|---|---|
faastjs.commonoptions.childprocess |
CommonOptions.childProcess property |
true |
faastjs > CommonOptions > childProcess
If true, create a child process to isolate user code from faast scaffolding. Default: true.
Signature:
childProcess?: boolean;
If a child process is not created, faast runs in the same node instance as the user code and may not execute in a timely fashion because user code may block the event loop. Creating a child process for user code allows faast.js to continue executing even if user code never yields. This provides better reliability and functionality:
-
Detect timeout errors more reliably, even if the function doesn't relinquish the CPU. Not applicable to AWS, which sends separate failure messages in case of timeout. See CommonOptions.timeout.
-
CPU metrics used for detecting invocations with high latency, which can be used for automatically retrying calls to reduce tail latency.
The cost of creating a child process is mainly in the memory overhead of creating another node process.