PROJECT_REPORT / 2025

Landkreis Fulda App

A large-scale public-sector backend focused on record-heavy workflows and high-volume notifications across push, email, and in-app delivery channels.

STACKPHP / Laravel / MySQL / Redis
RECORDS10,00,000+
NOTIFICATIONS80,000+ daily
QUEUE_LOAD1,000+ jobs/hour

Problem Space

The platform had to handle both operational scale and reliability at the same time. The challenge was not just storing a large amount of data, but making high-frequency notification workflows dependable without slowing down the application used by end users.

What Was Built

  • An API layer capable of managing 10,00,000+ records inside an operational government environment.
  • A notification workflow delivering 80,000+ daily messages across multiple channels.
  • Queue processing tuned to handle 1,000+ jobs per hour during heavy operational periods.

Engineering Approach

Laravel provided the delivery framework, MySQL held durable application state, and Redis supported the fast-moving queue and delivery orchestration layer. The architecture separated real-time user traffic from background work so spikes in notifications would not degrade normal application use.

Notification Workflow Topology

  • Step 01: User, staff, or system-triggered events entered the application through Laravel APIs and were normalized into a consistent notification payload.
  • Step 02: Delivery rules determined whether a message should move into push, email, or in-app channels, keeping channel-specific work isolated.
  • Step 03: Redis-backed queues handled dispatch preparation and worker execution so bulk activity never blocked interactive application traffic.
  • Step 04: Delivery status, retry outcomes, and message history were recorded back into the operational data layer for auditability and support visibility.

Queue Topology and Throughput Control

The queue model was designed around workload separation rather than one generic worker pool. High-volume delivery jobs, retry operations, and normal application-side background tasks were isolated so one noisy notification burst would not starve other system responsibilities. This made it easier to tune worker counts, retry policies, and processing priorities based on real operational behavior.

  • Separated real-time user-facing requests from asynchronous delivery pipelines.
  • Used Redis for fast queue coordination while MySQL remained the durable system of record.
  • Made retry handling and delivery-state inspection easier for operational teams during incident review.

Operational Architecture Notes

From an architecture perspective, the key decision was to keep message orchestration simple enough to operate under public-sector reliability expectations. Laravel services handled business rules, Redis provided fast queue movement, and MySQL stored user state, message metadata, and delivery history. This separation kept scale-related pressure concentrated in the asynchronous layer instead of leaking into the primary application experience.