There are several possible architectures. We should document what we choose to use to make the code easy to understand