One customer. One instance. One dedicated database.
Most email marketing platforms are built to serve many customers from shared infrastructure. That's a practical approach, but for QeakFlow, I wanted to take a different route.
Each QeakFlow customer gets an isolated application instance and a dedicated database.
Here's what that means architecturally:
Dedicated application instance: Each customer's Listmonk instance runs in its own Docker container.
Dedicated database: Each instance uses its own PostgreSQL database instead of sharing customer data in a common application database.
Automated provisioning: The infrastructure is created and configured automatically when a customer is onboarded.
Resource isolation: Containers provide boundaries for resource usage and help prevent one customer's workload from directly affecting another's.
Why does this matter?
For customers, isolation means fewer shared failure points, a clearer separation of data, and a more controlled environment for their email marketing operations.
It also gives us more flexibility to manage, troubleshoot, and maintain individual customer environments without treating the entire platform as one big system.
Of course, separate databases and containers aren't a guarantee of security on their own. Access controls, credential management, backups, updates, and monitoring still matter.
This architecture comes with additional infrastructure and operational complexity. That's a deliberate trade-off: rather than optimizing only for the lowest possible hosting cost, I'm building QeakFlow around a stronger separation between customer environments.
Because email marketing involves customer lists, subscriber information, and campaign data, I believe that separation is worth designing for from the start.
If that sounds like the right trade-off for your team, early access is open at qeakflow.com

Top comments (2)
고객별 Listmonk 인스턴스와 PostgreSQL DB를 분리해 장애 범위를 줄인다는 선택이 인상적입니다. 온보딩 자동화 후에도 고객별 백업 복원 연습을 하고, 운영자 계정과 SMTP 자격증명이 다른 고객 환경에 접근하지 못하는지 정기적으로 시험하면 실제 격리 수준을 확인하는 데 도움이 될 것 같습니다.
Absolute truth. Provisioning is only half the battle. Operational hygiene and testing are what actually prove isolation. Because each tenant has a dedicated PostgreSQL database and scoped container secrets, per-customer backups, test restores, and access boundaries are handled entirely independently without touching or risking other environments.