Investigate molohttp reverse proxy performance regression vs Caddy #100

Closed
opened 2026-07-18 14:06:28 +02:00 by retoor · 0 comments
Owner

Summary

The custom HTTP reverse proxy (molohttp) written in Swift is not performing as expected after replacing Caddy. The proxy was eventually reverted to Caddy. This ticket tracks the architectural investigation needed before attempting the swap again.

Steps to Reproduce

Not provided.

Expected Behaviour

molohttp should perform comparably to Caddy as an HTTP reverse proxy.

Actual Behaviour

  • "Molohttp is working but the performance is not what I expect."
  • "Async in Swift is more sensitive than Python. Need to investigate."
  • The proxy was reverted to Caddy with the note "we're on Caddy again."

Environment

  • Custom HTTP reverse proxy (molohttp) written in Swift
  • Previous proxy: Caddy
  • Web framework for admin/API has implicit dependencies (connection pooling, keep-alive, header rewriting) that break when the underlying HTTP server changes
  • Attempted to replace the web framework but the admin panel has deep dependencies on the framework that made it impossible to swap cleanly

Reported by retoor via DevPlace.

## Summary The custom HTTP reverse proxy (molohttp) written in Swift is not performing as expected after replacing Caddy. The proxy was eventually reverted to Caddy. This ticket tracks the architectural investigation needed before attempting the swap again. ## Steps to Reproduce Not provided. ## Expected Behaviour molohttp should perform comparably to Caddy as an HTTP reverse proxy. ## Actual Behaviour - "Molohttp is working but the performance is not what I expect." - "Async in Swift is more sensitive than Python. Need to investigate." - The proxy was reverted to Caddy with the note "we're on Caddy again." ## Environment - Custom HTTP reverse proxy (molohttp) written in Swift - Previous proxy: Caddy - Web framework for admin/API has implicit dependencies (connection pooling, keep-alive, header rewriting) that break when the underlying HTTP server changes - Attempted to replace the web framework but the admin panel has deep dependencies on the framework that made it impossible to swap cleanly --- *Reported by **retoor** via DevPlace.*
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: retoor/devplacepy#100
No description provided.