> For the complete documentation index, see [llms.txt](https://docs.mobguards.com/en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mobguards.com/en/backend-integration/architecture.md).

# Architecture

Below there are two ways to actively use BotProtection. Both share the same architecture, but different ways to get information. To read more about sync and async check, go to the [Interaction part](/en/master.md#interaction-with-your-backend).

### Sync method

![](https://682550200-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LxuA45qGEyH69CNfgF8%2F-LzHpCyKhnqbkT09LBGW%2F-LzHrLwUSMXjV9pceplS%2Fdevice_sync.png?alt=media\&token=3d000415-b41d-4dc8-814f-2c9d4eba4305)

In a sync check method encrypted JWT token is sent to the company backend by a client. To decode it and get a check result, company backend uses a public key provided when integrating BotProtection.

### Async method

![](https://682550200-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LxuA45qGEyH69CNfgF8%2F-LzHpCyKhnqbkT09LBGW%2F-LzHrOuI2ol3I9liUghQ%2Fdevice_async.png?alt=media\&token=8329f9bb-f04d-4a92-a799-b42a615a99b2)

In an async check, company backend asks BotProtection machine results for specific UUIDs/device IDs/challenge IDs.

### Security

BotProtection machine and dashboard are not integrated in a middle of a company pipeline and cannot interrupt company processes. Instead of that, BotProtection part is aside in a company outline and serves as an extra API to get information about detected bots.
