- Sending an email
- Logging
- Making a database call
- API requests
- Side-effects could be executed multiple times.
- The result of the side-effect may not be consistent across executions.
Memoized Results
To solve this problem, Inferable provides amemo
convenience function that can be used to cache interim results.

- Memoized results are cached, and scoped to an executionId.
- The memoized function will return a result.
- Any errors thrown inside the memoized function are returned directly to the workflow.
- If your intent is to fail the workflow as a result of a side-effect, you can let the error bubble up.
- If your intent is to continue the workflow despite the error, you must catch the error and continue.