goauthentik / goauthentik/authentik
Backend performance tracking issue
- Dominant language
- Python
- Stars
- 25.6k
- Forks
- 2k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 644
Description
This is a tracking issue for general performance improvements when want to make to our backend. This does not include endpoint or query specific improvements.
The list of things:
- [x] Move to Rust for the server and worker "entrypoints"
- Released in 2026.8
- [ ] Move the websockets handling from Python to Rust (to remove async code from Python)
- Requires e2e tests to be run against a full-fledged authentik instance for the websockets tests to pass
- planned for 2026.11
- [ ] Switch to freethreaded Python. Here's a list of things that need to happen simultaneously for that (apart from the things above that can be done before):
- [ ] Enable connection pooling in Django
- [ ] Switch our dev env and Docker images to freethreaded Python
- [ ] Write a custom WSGI converter that passes axum requests to Django WSGI app
- [ ] Refactor the PolicyEngine to use threads instead of processes
- [ ] Anything for the worker?
- planned for either 2026.11 or 2027.2, most likely the later due to breaking changes
- [ ] ???
- [ ] blog about this
Blockers:
- support for freethreading in dependencies:
- [ ] `lxml`: https://bugs.launchpad.net/lxml/+bug/2111289, planned for 7.0.0
- [ ] `xmlsec`: https://github.com/xmlsec/python-xmlsec/issues/427
- [ ] `protobuf`: https://github.com/protocolbuffers/protobuf/issues/23158 "end of year"
- [ ] `black`, `debugpy`, `pyroscope-io`: we don't really care for now
Contributor guide
Assessment
This issue has not been assessed yet.