# Async Data Factory

This is an example demonstrating the construction of async state with `App::data_factory`.

## Reason:

Use of a `data_factory` would make sense in these situations:

- When async state does not necessarily have to be shared between workers/threads.
- When an async state would spawn tasks. If state was centralized there could be a possibility the tasks get an unbalanced distribution on the workers/threads.

## Context

The real world difference can be vary by the work you are doing but in general it's a good idea to spread your similarly-expensive async tasks evenly between threads and have as little cross threads synchronization as possible.