
Closed
Posted
Paid on delivery
Title: Senior engineer — scale a Laravel + ClickHouse email-sending platform to 1M+/day Description: We run a Laravel/PHP email-sending platform (MySQL, ClickHouse) that delivers through ESP/SMTP relays (Amazon SES, SendGrid, Mailgun, SparkPost). It already has a full sending control plane — per-server warmup quotas, a 3-layer volume throttle, reservation accounting, provider cooldowns, SMTP classification, MX classification. It works today at low volume. We need a senior engineer to re-architect the hot paths so it reliably scales from current volume to 100k → 250k → 500k → ~1,000,000+ messages/day without violating per-domain / per-provider / warmup limits. Concrete work areas: Rate-accounting & distributed concurrency — we have both a file-based and a Redis-cache-reservation path; benchmark contention/correctness under multiple worker hosts and move hot counting to atomic, shardable accounting. Recipient selection — replace a growing per-wave exclusion query with an indexed dispatch-ledger/cursor design. Dispatch throughput — replace serial ~200-recipient waves with a design that keeps workers saturated without flooding the queue. ClickHouse ingestion — replace one-insert-per-event with buffered/bulk batch inserts (this is a first-class requirement). Queue backend + multi-host worker topology, MySQL indexing/EXPLAIN at 30M+ rows, load testing and observability. Required (must have all): Strong PHP/Laravel (queues, jobs, Eloquent) Distributed systems / high concurrency: correct concurrent rate limiting, distributed locks, atomic counters (Redis/Lua), reservation & idempotency Laravel queue/worker scaling (database vs Redis vs SQS), Supervisor, multi-host fleets MySQL at scale: indexing, EXPLAIN, hot-row contention, tens of millions of rows ClickHouse in production — MergeTree schema, batched/bulk ingestion, avoiding part-per-insert (must have operated it, not just queried it) Proven experience operating a 500k–1M+/day email-sending system (this is the key differentiator) Load testing + production observability Nice to have: PowerMTA/Halon/MailerQ (only relevant if we later run our own MTA — not required now); deliverability fundamentals; ex-ESP engineer (SendGrid/Twilio, Mailgun, SES, SparkPost). How this starts: a paid ~20–40 hour architecture + benchmark review first — assess the production system, benchmark the bottlenecks, and deliver a target architecture + migration plan + implementation estimate. Implementation is a separate, larger engagement awarded after that review. To bid, you MUST answer these two questions (bids that don't will be ignored): How would you batch our ClickHouse event ingestion (sends/opens/clicks/bounces) to avoid part-per-insert at ~1M events/day, and how do you handle failures/duplicates? How would you design a distributed rate limiter so 20 workers across 3 hosts never exceed a per-provider hourly cap, with correct behavior if a worker dies mid-send? Please link a specific project where you scaled email sending or high-throughput ClickHouse ingestion. Do not bid if your approach relies on rotating domains/IPs or "guaranteed inbox" tactics — we protect long-term sender reputation.
Project ID: 40732206
172 proposals
Remote project
Active 19 hours ago
Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
172 freelancers are bidding on average $3,684 USD for this job

Hello — I would start by replacing your Redis/file rate path with Lua-based reservations and batching ClickHouse events, because those are the two places most likely to break first at 100k → 1M+/day. The serial 200-recipient waves and growing exclusion query should also move to a dispatch ledger with cursor-based selection, so Laravel workers stay saturated without crossing SES/SendGrid/Mailgun/SparkPost caps. - Laravel + MySQL remain the control plane; ClickHouse gets bulk async inserts. - I would use atomic Redis reservations with TTL, finalize-on-ack, and crash reclaims. - Events would buffer by type/time and flush in batches with idempotency keys. - The review would cover benchmarks, EXPLAIN, queue topology, tests, and deployment. For ClickHouse failures/duplicates, I would retry whole batches safely and dedupe via keyed staging or ReplacingMergeTree. Is the current queue backend database, Redis, or SQS? Roman
$4,500 USD in 26 days
10.0
10.0

A Warm Hello! We are readily available to start working on this project! We would be very interested in partnering with you to scale your existing Laravel/PHP + MySQL + ClickHouse email-sending platform from its current low-volume operation to 100K → 250K → 500K → 1M+ messages/day while preserving the correctness of your existing sending controls. We suggest beginning with the 20–40 hour architecture and benchmark review. Once we have access to the relevant code, database/schema information, worker configuration, ClickHouse setup, and representative production metrics, we can benchmark the existing hot paths and produce the target architecture and implementation plan for reliably reaching 500K → 1M+ messages/day. Best regards, Ana
$5,000 USD in 60 days
9.8
9.8

Hello, I’ve reviewed your requirement carefully. The core challenge is scaling Laravel from today’s volume to 1M+ messages/day while keeping distributed rate limits, reservations and queues correct. 1. ClickHouse: I’d buffer sends/opens/clicks/bounces in workers or a dedicated ingestion layer and flush in batches (e.g. 1k–10k events) into MergeTree tables, avoiding one insert per event. Each event gets a unique ID; retries are safe through idempotency/deduplication, with failed batches retained for retry. 2. Rate limiting: I’d use Redis atomic operations/Lua for provider-hour reservations. Workers atomically reserve capacity before dispatch, with reservation IDs + TTL/lease expiry. If a worker dies, the uncompleted reservation expires/reconciles without allowing the hourly cap to be exceeded. I’d start with the proposed 20–40h architecture/benchmark review. Timeline: 1–2 weeks; budget: $1,000–$2,000. Happy to discuss the current implementation. Best, SNR
$3,000 USD in 7 days
9.0
9.0

Hi — Elias here from Miami. I see you’re looking to scale a Laravel and ClickHouse email-sending platform to handle over one million emails per day. That’s a significant milestone that requires careful attention to infrastructure and application design. What usually matters most here is scalability and reliability. A common issue in systems like this is managing load effectively, especially during peak times. The tricky part is optimizing database interactions and ensuring your email delivery infrastructure can handle bursts without failure. My approach would involve structuring a robust architecture that dynamically scales, leveraging caching with Redis, and ensuring efficient queue management for email processing. This will enhance performance and simplify future maintenance. I’ve worked on similar high-volume systems, optimizing email workflows and integrating with services like SendGrid. My experience helps address potential pitfalls early in the design phase. A few questions to better understand the scope: Q1 – How do you envision managing user roles and permissions? Q2 – What are your expectations for future scaling? Q3 – Are there specific integrations that need to be prioritized? I can also help simplify the scope for a solid v1 launch. Looking forward to hearing from you.
$4,000 USD in 14 days
8.5
8.5

Hello, We carefully studied the description of your project and we can confirm that we understand your needs and are also interested in your project. Our team has the necessary resources to start your project as soon as possible and complete it in a very short time. We are 25 years in this business and our technical specialists have strong experience in PHP, Linux, MySQL, Laravel, Redis, SMTP, SendGrid, Distributed Systems and other technologies relevant to your project. Please, review our profile https://www.freelancer.com/u/tangramua where you can find detailed information about our company, our portfolio, and the client's recent reviews. Please contact us via Freelancer Chat to discuss your project in details. Best regards, Sales department Tangram Canada Inc.
$3,980 USD in 5 days
8.8
8.8

Hi, I can optimize the Laravel + ClickHouse email-sending platform to scale effectively. In my experience, one critical aspect is ensuring that the ClickHouse ingestion process is efficient. By implementing bulk inserts with a buffer mechanism, we can significantly reduce the overhead of individual inserts, which is essential for handling ~1M events/day. Additionally, I will incorporate error handling strategies to manage failures and duplicates, ensuring data integrity. For the distributed rate limiter, I will utilize Redis for atomic counters and implement a locking mechanism to ensure that the 20 workers across 3 hosts adhere to the per-provider hourly cap. This approach will maintain correct behavior even if a worker fails during the sending process. I will start with a paid architecture review to assess the current system and identify bottlenecks. This will include load testing and observability checks to ensure we can handle the increased volume. To get started, I will need access to the current codebase, database schema, and any existing documentation on the architecture. Thanks!
$3,000 USD in 3 days
8.3
8.3

The first ClickHouse change would be an append-only event buffer that flushes typed rows by size/time into bulk MergeTree inserts, rather than one part per send/open/click/bounce. Each event carries a stable event_id; retries are safe through deduplication/idempotent downstream queries, while a durable outbox records batch state and retries failed inserts with backoff. For the 20-worker provider cap, Redis Lua would atomically reserve capacity in a provider/hour shard before dispatch and persist a send intent keyed by message id. A worker death before SMTP handoff can release an expired reservation; an unknown mid-send remains conservatively charged for that hour and is reconciled against delivery outcomes, so the cap is never exceeded. In 4 days, you will receive a benchmark report, target architecture, migration sequence, and implementation estimate covering ledger-based selection, queue topology, and MySQL hot paths. Is Redis already shared across all three worker hosts? Muhammad Saad
$3,000 USD in 4 days
7.9
7.9

YES-------GOT THE SCOPE OF WORK---------->>I am highly qualified to do this job with high QUALITY ----- 1M+ emails/day is a coordination problem, not simply a Laravel scaling problem. I can benchmark your current hot paths and redesign the bottlenecks around Redis atomic reservations, Laravel workers, MySQL dispatching, and ClickHouse ingestion. For ClickHouse, I would use buffered bulk inserts with idempotent event IDs and retry-safe batches. For distributed rate limiting, Redis/Lua atomic reservations + TTL recovery can keep 20 workers across 3 hosts within provider/domain limits even when workers fail. I will start with the paid architecture review, benchmark the real bottlenecks, and deliver a practical migration plan with implementation estimates. Quick Questions What ClickHouse version and current MergeTree schema are you using? Can you share current throughput and worker/queue metrics? I can focus the review on proving where the system will break before scaling it. Thanks!!
$3,300 USD in 33 days
8.1
8.1

Hi, We run a Laravel platform that dispatches through SendGrid with Redis-backed queues and a MySQL data layer, so the sending control plane and worker fleet mechanics you describe are familiar territory. On ClickHouse ingestion: I'd stop inserting per event and buffer sends/opens/clicks/bounces in a Redis stream, then flush in bulk batches (a few thousand rows or a short interval) into a MergeTree, keyed with an idempotency id so the async materialized view or ReplacingMergeTree collapses duplicates on replay. Failed batches go back to the stream, never dropped. On the distributed limiter: a per-provider hourly counter as an atomic Redis reservation via a Lua script (check-and-decrement in one operation), each send holding a reservation with a short TTL that self-releases if a worker dies mid-send, so 20 workers across 3 hosts never exceed the cap and crashed reservations expire back into the pool. We've delivered Laravel plus SendGrid integration work with strong client feedback. Laravel SendGrid contract: reviewed 5 stars on Upwork Question: is the ClickHouse instance single-node or a cluster today, and what's the current part count per table? That decides whether batching alone fixes it or we also tune merge settings. Adil
$4,042.50 USD in 21 days
7.4
7.4

The risky part here is making 20 workers across multiple hosts behave like one disciplined sender, while also stopping ClickHouse from getting hammered by tiny inserts. I’d approach this as an architecture and benchmark pass first: measure contention in the current reservation logic, profile the exclusion query growth, and define a dispatch model that keeps workers busy without violating domain/provider ceilings. I’ve handled Laravel/PHP scaling work where queue behavior, Redis atomicity, and database hot spots mattered more than raw code cleanup. For your first required question: I’d batch sends/opens/clicks/bounces into micro-batches using a buffer threshold plus flush interval, persist a replay-safe batch ledger, and enforce idempotent event keys so failed batches can be retried safely without duplicating analytics. For the rate limiter: atomic token reservation in Redis via Lua, expiry-bound leases for in-flight capacity, and a reclaim/reconciliation step for worker death so unused quota returns cleanly. - Is there already a canonical event ID across sends, opens, clicks, and bounces that can serve as the dedupe key, or would that need to be introduced? - On the recipient side, do you want the review to include a proposed schema for the dispatch ledger/cursor tables and indexes? - Are provider cooldowns enforced centrally today, or independently per worker host?
$4,000 USD in 7 days
7.7
7.7

⭐⭐⭐⭐⭐ Scale Your Laravel + ClickHouse Email Platform to 1M+ Messages/Day ❇️ Hi My Friend, I hope you're doing well. I've reviewed your project requirements and see you're looking for a senior engineer to scale your Laravel and ClickHouse email-sending platform. You're in the right place; Zohaib is here to help! My team has successfully completed 50+ similar projects for high-volume email systems. I will focus on re-architecting the hot paths to ensure reliable scaling from 100k to 1M+ messages per day while adhering to warmup limits. ➡️ Why Me? I can easily handle your project as I have 5 years of experience in PHP and Laravel, specializing in email-sending systems and high concurrency. My expertise includes distributed systems, rate-limiting, and MySQL optimization. I have a strong grip on ClickHouse and have operated similar high-throughput systems. ➡️ Let's have a quick chat to discuss your project in detail. I can provide samples of my previous work, showcasing my experience in scaling email platforms. I look forward to our discussion! ➡️ Skills & Experience: ✅ PHP/Laravel Development ✅ ClickHouse Management ✅ MySQL Optimization ✅ Distributed Systems ✅ High Concurrency Solutions ✅ Load Testing ✅ Rate Limiting ✅ Queue Management ✅ Bulk Data Ingestion ✅ Observability Tools ✅ Eloquent ORM ✅ SMTP/ESP Integration Waiting for your response! Best Regards, Zohaib
$3,400 USD in 2 days
7.8
7.8

Hi, I’m Mayank. I have 12+ years of backend/full-stack experience with Laravel, PHP, MySQL, Redis, queues and distributed systems. Your architecture review approach is a good fit. ClickHouse batching: I’d buffer events in workers and use bulk inserts into MergeTree tables rather than one insert per event. I’d use stable event IDs/idempotency keys to handle retries and duplicates, with retry-safe batches and failure logging. Distributed rate limiting: I’d use Redis atomic counters/Lua with provider/hour buckets and reservation accounting. Workers reserve capacity atomically before sending, with leases/TTLs so a dead worker’s reservation expires safely without exceeding the cap. For the initial 20–40 hour review, I can benchmark the current bottlenecks and provide the target architecture, migration plan and implementation estimate. I don’t have a verified 500k–1M/day email-sending project I can honestly link to, so I wouldn’t claim that experience. Thanks
$3,000 USD in 7 days
7.5
7.5

We will help you with this development to scale your email sending platform to your desired limits without any compromise on the quality and blocking. Please get in touch to discuss more in detail and start with the work ASAP Cost and timeline will be confirmed in chat after a complete understanding and documentation of the expectations in detail
$4,200 USD in 25 days
7.4
7.4

Hi — Puru here from ErgoSphere. You're essentially building a scalable email-sending platform on Laravel and ClickHouse, aiming to handle over 1M messages/day while adhering to per-domain/provider limits and optimizing resource usage. What usually matters most here is achieving high concurrency and efficient data handling, especially through distributed systems for rate limiting and bulk data ingestion with ClickHouse. I recommend re-architecting your system using a combination of Redis for distributed rate limiting with atomic operations and buffering ClickHouse inserts to minimize parts per insert. This can be achieved by batching events and utilizing MergeTree for efficient data ingestion. For Laravel worker scaling, leveraging Supervisor with Redis and SQS will ensure that your multi-host setup remains robust under load. I've worked on AI-driven automation, scalable web platforms, and high-throughput systems. This aligns well with your need for a robust, scalable architecture. A few questions to better understand the scope: Q1 – How are you currently handling failures and retries in ClickHouse event ingestion? Q2 – Is there any flexibility in redesigning the dispatch mechanism to accommodate a more event-driven model? Q3 – What are your current observability tools and metrics for monitoring the system? A working prototype could reasonably be targeted within 6–8 weeks, followed by a polished release in roughly 10–12 weeks depending on integration complexities and load testing results. Looking forward to hearing from you.
$5,000 USD in 30 days
7.1
7.1

Hello!, I am a US-based senior software engineer and I’d love to help scale your Laravel + ClickHouse email platform to 1M+/day reliably. The real challenge here is usually not just sending more emails, but keeping queues stable, delivery consistent, and analytics fast while load increases. My approach would be: 1. Review the current Laravel, Redis, MySQL, SMTP/SendGrid, and ClickHouse flow to find the bottleneck. 2. Tighten queue workers, retries, batching, and throttling so sending stays smooth. 3. Optimize ClickHouse and reporting paths so analytics never slows delivery. 4. Add monitoring and failure isolation so the system can scale safely. I’ve built backend systems where performance and reliability mattered more than flashy code, and I pay close attention to the details that decide whether a platform actually survives production traffic. Relevant work I’ve done includes: - a high-volume SaaS notification platform - an email automation engine with queue-based delivery - a Laravel analytics dashboard backed by large event datasets - a distributed job processing system for scheduled campaigns Could you please clarify the following questions to help me better understand the project? 1. What is the main bottleneck today: queues, SMTP/SendGrid limits, MySQL, or ClickHouse? 2. Do you need architecture guidance only, or full implementation and deployment too? 3.
$4,200 USD in 13 days
6.8
6.8

What happens right now when a worker dies mid-send, does its slice of the per-domain rate budget sit reserved until timeout, or get reclaimed? Insert-per-event into ClickHouse chokes the merge tree on part count long before CPU becomes the bottleneck, and that ceiling shows up well under 1M/day on a Laravel sender. So the review starts there: batching writes through a buffer with idempotent dedup keys on message id, so retries never double count opens or bounces. For rate limiting I'd push it into Redis with a Lua script doing check and decrement atomically, sharded per domain and provider so warmup ceilings don't share a bucket, each worker holding a short lived lease and heartbeat. If a worker dies, the lease expires and the slot frees up instead of blocking the provider cap for everyone else. The review covers current architecture, load benchmarking against your actual ceilings, a target design, and a migration plan with implementation estimate for the follow-on build. M1: architecture and benchmark audit, $850, 2d M2: ClickHouse ingestion redesign, buffering and dedup keys, $850, 2d M3: rate limiter design, Redis Lua token buckets with lease and heartbeat, $850, 2d M4: migration plan and phased rollout, $850, 2d M5: implementation estimate, cost breakdown and final report, $850, 2d Send me repo access and the per domain and provider limits you're warming against, and I'll have a tighter estimate on the migration phasing by tomorrow.
$4,250 USD in 10 days
6.6
6.6

Hi, What current challenges are you facing with your email-sending platform as you scale to higher volumes? Based on your description, batching ClickHouse ingestion could involve using a buffered mechanism that collects events and performs a single bulk insert every few seconds while implementing a retry strategy for failed inserts. I would create an atomic counter in Redis that keeps track of each worker’s contribution. A failing worker would have its contributions rolled back to ensure the hourly cap is not violated. I have solid experience in PHP/Laravel, distributed systems, and high-concurrency applications, specifically within email systems handling millions of sends per day. My last project involved optimizing a high-throughput ClickHouse setup while maintaining sender reputation. Let’s discuss your needs in detail. Best Regards Surender Sharma
$4,000 USD in 7 days
6.3
6.3

Hi, I can help with the architecture/benchmark phase and focus specifically on the concurrency, ClickHouse ingestion, queue throughput, and rate-accounting bottlenecks. For ClickHouse, I’d buffer events in workers and flush by batch size/time threshold using async/bulk INSERTs into MergeTree, with retryable batches, idempotency/event IDs, and deduplication strategy so transient failures don’t create inconsistent analytics or part-per-insert overhead. For distributed rate limiting, I’d use Redis atomic operations/Lua with per-provider time-bucket/token-bucket reservations and TTLs. Workers reserve capacity before sending; leases/expiry handle worker crashes, while idempotency prevents double accounting. I’d begin with the paid architecture + benchmark review, measure the real bottlenecks, then provide a migration plan and implementation estimate. I can also share relevant high-throughput architecture work privately.
$4,000 USD in 7 days
6.1
6.1

Hi, I understand you're looking to scale your Laravel/ClickHouse email-sending platform to handle over 1 million emails per day. This involves optimizing your current system, which includes MySQL, ClickHouse, and various ESP/SMTP relays like Amazon SES and SendGrid. The primary challenge here is ensuring that the system can handle increased volume without compromising on delivery speed or accuracy. My approach would focus on assessing the current load distribution and identifying bottlenecks, particularly in the database and network layers. Prioritizing stability while scaling is crucial, especially with your existing warmup quotas and SMTP classifications. My expertise with PHP and Linux, alongside past projects involving high-volume email systems, positions me well for this task. I've previously optimized similar platforms to enhance scalability and performance. Q1 – What specific performance metrics are you currently using to monitor the system's capacity? Q2 – Are there any existing constraints with your ESP/SMTP relays that we need to consider? Q3 – Do you anticipate any changes in the email content or structure that might affect the system's throughput? Looking forward to hearing from you.
$3,000 USD in 7 days
5.7
5.7

To batch ClickHouse event ingestion at ~1M/day, I’d use an in-memory buffer per worker that aggregates events into arrays keyed by event type. The buffer flushes either when a size threshold or a time interval is reached, issuing a single multi-row insert into a MergeTree table. To handle failures, I’d implement retry logic with idempotency keys so duplicates can be detected and safely skipped on re-ingestion. For distributed rate limiting across 20 workers on 3 hosts, a Redis-based token bucket with atomic Lua scripts would work well. Each provider’s hourly cap is divided into tokens. Before sending, workers try to consume tokens atomically. If a worker crashes mid-send, tokens are only deducted on successful sends—failure means tokens aren’t consumed, preventing silent rate overshoots. A fallback distributed lock ensures consistency during bursts. I recently helped a client in the SaaS email space scale from 50k to 600k/day with a similar architecture—moving from inefficient synchronization to distributed atomic counters and batch database writes. I’ll start by reviewing your current bottlenecks and deliver a focused plan for concurrency, queue saturation, and bulk ClickHouse writes that can scale stepwise to 1M/day. Ready to dive into your architecture and build a solid migration roadmap with benchmarks.
$3,000 USD in 7 days
5.9
5.9

Phoenix, United States
Payment method verified
Member since Dec 23, 2009
N/A
N/A
N/A
$250-750 USD
N/A
₹250000-500000 INR
$10-30 USD
€8-30 EUR
$30-250 USD
$10-11 USD
₹100-400 INR / hour
₹600-1500 INR
$15-25 USD / hour
$30-250 USD
₹12500-37500 INR
₹37500-75000 INR
$15-25 USD / hour
₹12500-37500 INR
$10-30 USD
€18-36 EUR / hour
₹750-1250 INR / hour
$30-250 USD
₹600-1500 INR
$3000-5000 USD
$25-50 USD / hour