---
title: "Architectuur"
space: "Frappe Framework"
url: "https://www.prilk.com/nl/docs/frappe-framework/architectuur"
updated: "2026-05-14"
---

## Architectuur

Frappe is een gelaagde web-applicatiestack. De onderdelen kennen helpt bij troubleshooting en bij het inschatten van infrastructuur.

### De lagen

| Laag | Technologie |
|---|---|
| Database | MariaDB (standaard) of PostgreSQL |
| Applicatieserver | Python met Gunicorn + Werkzeug |
| Achtergrondworkers | RQ (Redis Queue) |
| Cache & sessies | Redis |
| Realtime updates | Socket.IO (Node.js) |
| Frontend | Server-rendered Jinja, plus jQuery/Vanilla JS in het desk |
| Bestandsopslag | Lokaal bestandssysteem of S3-compatibele objectopslag |

### Hoe een request stroomt

1. De browser hit het **web** Gunicorn-proces via Nginx.
2. Frappe routeert het request: DocType-formulier, rapport, API-call of een custom pagina.
3. Permissies worden gecontroleerd tegen het DocType, de rollen van de gebruiker en eventuele recordregels.
4. Data wordt uit MariaDB gelezen; het antwoord wordt gerenderd (HTML, JSON of PDF) en teruggestuurd.
5. Langlopend werk (PDF-generatie, mail, integraties) gaat via RQ naar **worker**-processen; de gebruiker krijgt direct antwoord.

### Multi-tenancy

Eén bench kan meerdere **sites** hosten, elk met eigen database, bestanden, gebruikers en geïnstalleerde apps. Zo bedienen Frappe Cloud en Prilk-managed deployments meerdere klanten vanaf één stack.
