🚀 Active-Active · Zero Downtime · Horizontal Scaling

High Availability &
Load Balancing

Scale your PDF infrastructure horizontally. Active-active request processing, database-backed sessions, distributed job queues, and intelligent leader election — all without sticky sessions.

N+1 Redundancy
~0s Failover
100% On-Premise
Scale-Out
🌐

Network Load Balancer

HTTPS Termination · Health Checks · Round-Robin

│       │
🖥️

YesPDF #1 · Primary

HTTP + Queue + Hot Folder + Alerts

🖥️

YesPDF #2 · Worker

HTTP + Queue (Hot Folder standby)

│       │
🗃️

PostgreSQL (Shared)

Sessions · Queue · Leader Election

📁

Shared File Storage

NFS / SMB · AES-256 Encrypted

Every Instance Handles Everything

All YesPDF instances simultaneously process incoming HTTP requests. No sticky sessions needed — the load balancer distributes using round-robin or least-connections.

Capability Mode Details
PDF Tools (merge, split, rotate, compress) ✔ Active-Active Any instance handles any request
OCR Processing ✔ Active-Active CPU-intensive jobs distributed across all instances
Document Conversion (Word, Excel, HTML, CAD) ✔ Active-Active Concurrent processing on all nodes
Digital Signature ✔ Active-Active Sign/verify from any instance
Web Viewer & Editor ✔ Active-Active Stateless rendering, works from any node
File Upload / Download ✔ Active-Active Shared storage ensures file availability
REST API (v1) ✔ Active-Active Stateless API with shared session validation

No Sticky Sessions Required. User sessions are stored in PostgreSQL — a user can log in through Instance A and seamlessly continue on Instance B without re-authenticating.

Built for Enterprise Resilience

Every component designed for multi-server deployments from the ground up.

🔑

Database-Backed Sessions

Sessions stored in PostgreSQL, not server memory. HTTP-only Secure cookies, single-session enforcement, idle timeout, and activity throttling to minimize DB writes.

📦

Distributed Job Queue

Atomic database locking (SELECT ... FOR UPDATE SKIP LOCKED) ensures each job is processed exactly once. Configurable concurrency limits and automatic stale job recovery.

👑

Leader Election (Hot Folder)

Database-based leader election for hot folder signing. Automatic failover in ~30s. Graceful handoff on shutdown. No Redis or ZooKeeper required.

🛡

Shared Rate Limiting

Rate limiting state stored in database, enforced globally. API rate limits, login lockout, IP restrictions — all synchronized across nodes.

🔍

Health Check Endpoint

GET /api/health returns 200 OK for load balancer integration. Automatic traffic routing away from unhealthy instances.

🔒

Stateless CSRF

Double-submit cookie pattern requires no server-side state. Works perfectly in multi-server environments without session affinity.

From Single Server to Scale-Out

Choose the deployment mode that matches your availability requirements. Scale horizontally by simply adding worker instances.

💻 DEFAULT

Single Server

Standard deployment for small to mid-size organizations. One YesPDF instance handles everything.

INSTANCE_ROLE=primary DATABASE_URL=sqlite:///./yespdf.db
✔ RECOMMENDED

Two-Node HA

Recommended for production. Fault tolerance with automatic failover for zero downtime.

# Instance A INSTANCE_ROLE=primary DATABASE_URL=postgresql://... UPLOAD_DIR=\\fileserver\uploads SERVER_ID=yespdf-node-1 # Instance B INSTANCE_ROLE=worker SERVER_ID=yespdf-node-2
🚀 ENTERPRISE

Scale-Out (3+ Nodes)

High-throughput environments. Add worker instances as demand grows.

# Add N worker instances INSTANCE_ROLE=worker DATABASE_URL=postgresql://... UPLOAD_DIR=\\fileserver\uploads SERVER_ID=yespdf-node-N TRUSTED_PROXIES=10.0.0.100

Simple Environment-Based Configuration

All settings managed through environment variables. No complex XML or YAML files.

Setting Default Description
INSTANCE_ROLE primary primary runs all background daemons; worker runs HTTP + queue only
SERVER_ID auto-detect Unique identifier per instance (leader election & session tracking)
DATABASE_URL sqlite:///./yespdf.db Must be PostgreSQL for multi-server deployments
UPLOAD_DIR ./uploads Must be shared storage (NFS/SMB) for multi-server
TRUSTED_PROXIES empty Load balancer IP(s) for correct client IP detection
SESSION_COOKIE_SECURE False Set to True when NLB terminates HTTPS
QUEUE_MAX_WORKERS 8 Total concurrent workers per instance
QUEUE_MAX_OCR 2 Max concurrent OCR jobs per instance

Resilience by Design

Every failure scenario has been engineered with automatic recovery. Know exactly what happens when things go wrong.

🔴 Worker Instance Crashes
NLB stops routing to it via health check. In-flight queue jobs recovered after timeout and picked up by another instance.
⚡ Instant (NLB health check)
🔴 Primary Instance Crashes
NLB stops routing. Hot folder leadership transfers to standby instance. Other daemons pause until primary returns.
⏱ Hot folder: ~30s
🟡 Database Unavailable
All instances return 503. Sessions preserved in DB. Full recovery when database comes back online.
🔄 Depends on DB recovery
🟡 Shared Storage Unavailable
File operations fail gracefully. Queue jobs automatically retry when storage is restored.
🔄 Depends on storage recovery

Security in Multi-Server Mode

🔒
Transport
HTTPS via NLB
🔑
Sessions
DB-Backed Secure
🗄
File Encryption
AES-256 per-file
🛡
Rate Limiting
DB-Synchronized
🚫
CSRF
Stateless Cookie
🌐
Client IP
Trusted Proxy
📝
Audit
Centralized Log
🔐
Keys
Shared Across Nodes

What You Need to Get Started

Standard enterprise infrastructure. No exotic dependencies or third-party services required.

⚖️

Load Balancer

Protocol HTTPS (TLS termination) or TCP
Algorithm Round-robin or least-connections
Health Check GET /api/health → 200
Timeout 300s (large file processing)
🗃️

Database

Engine PostgreSQL 14+
Mode Shared by all YesPDF nodes
Connections 20 per instance (configurable)
HA Option Streaming replication
📁

File Storage

Type NFS, SMB/CIFS, or SAN
Mount Same path on all instances
Encryption AES-256 at rest by YesPDF
Recommended SSD-backed for OCR/conversion
🌐

Network

Ports 8000 (HTTP) per instance
Firewall NLB → instances → PG + storage
DNS Single FQDN → NLB VIP
Internal Low-latency recommended

Full Visibility Into Your Cluster

Built-in monitoring tools give you real-time insight into every node.

❤️

Health Check Endpoint

Load balancer integration with automatic routing.

GET /api/health → 200 OK
📋

Admin Dashboard

Real-time system stats, active users, storage usage, operation counts, per-user breakdowns, and filterable audit logs — all accessible from the web admin panel.

📈

Statistics

Operation counts, trends, and per-user breakdowns. Filter by date range, user, or category.

📝

Audit Log

Complete trail of all operations with user identity, IP address, and timestamp. Centralized in shared DB.

🔔

Notifications

In-app alerts for certificate expiry, storage thresholds, job failures, and system health warnings.

Per-Instance Licensing

Each YesPDF instance requires a valid license file bound to the server's hardware fingerprint. Contact your YesPDF representative for multi-server licensing options.

💻

Single Server

One license, full functionality. SQLite or PostgreSQL. Ideal for small teams.

🔄

Two-Node HA

Two licenses for primary + worker. PostgreSQL required. Recommended for production.

🚀

Enterprise Scale

Volume licensing for 3+ nodes. PostgreSQL + shared storage. Custom SLA available.

Ready to Scale Your PDF Infrastructure?

Enterprise PDF management, on your infrastructure. No cloud. No limits.

🌐
Website
✉️
Email
📞
Phone
+90 212 347 4715
📍
Location
Istanbul, Turkey

YES BILISIM TEKNOLOJILERI YAZILIM DANISMANLIK SAN. VE TIC. A.S.