Upcoming improvements to delivery speed and domain policies.

twisted1919

Administrator
Staff member
Hello,

This is a quick post to let you know about the upcoming changes from 1.9.13 version which improve the delivery speed but also fix the domain policies once and for all.

Speaking about delivery speed, with pcntl, the improvements we added to send-campaigns command allowed us to send up to 778 emails/second in a real world scenario.
This number can be much much higher with more aggressive settings. I don't think you will ever need to send that fast, remember, 778 emails/seconds means ~2.9M emails/hour, that's just insane.

Another important change, again, for when using pcntl, is done for the way we pre-calculate data before actually sending the campaigns.
Previously, we would create pcntl processes even if the process had nothing to actually process. This was just a waste of resources which took considerable amount of time. Things changed now, we pre-calculate before the actual send, which means that we are now able to see if we need to spawn new pcntl processes or not.
What does that mean in layman terms? It's simple, without this change, having for example ~350 active autoresponders, when the send-campaigns ran, it had to go through all of them, and if needed be, based on your sending settings, create processes for all of them, and in the end, it would took 1388 seconds, that's over 20 minutes when the app did nothing but loop through the autoresponders. Now, same number of campaigns, take under one second in same condition, when there's nothing to send out, which is just amazing.

You may wonder why we didn't do these changes previously, or why was the system so slow previously.
The answer is that, even with the above timing which indeed is slower than our improvements, the timing was still good enough for 99% of users.
There were also some things which prevented us to improve the send-campaigns command, but we managed to overcome them by rewriting small parts of the code to accommodate the changes.

Related to domain policies, there were a number of complains where sending was stuck because of domain policies, at a point where we actually wanted to remove them from the application because they caused so many troubles.
Now we found an elegant way to address the problem and we deployed the fix on a few live instances which use real-world data, and the results are 100% what we expected to be, the issue is solved now.

That being said, upcoming 1.9.13 release will be one of the most important ones, which also paves the way to 2.0 which is closer and closer.
It's also important to note that all this huge changes will not affect your system in any way, you should be able to upgrade without issue and benefit these changes.

As always, big thanks to @laurentiu and @ghimes which are here to do the grunt work on most of things ;)

Best.
 

majid1f

Active Member
One question remain,
How can we control delivery servers? such as we want to send Gmail addresses with one server, another server sends yahoo etc. we control this with domain policy, rightnow how can we control it?
 

Vitaliy Eremenko

New Member
Will you describe in some way tech specs and configs for that real-world scenario? Maybe in form of a step-by-step tutorial, like "buy a 5-10-100-1000$ vps/aws/hardware server, install mailwizz+postfix/exim/powermta, make some config here and there, and that's your result in 700 mails per sec"))
 
That's sound interesting but what about parallel regular campaigns, something like 400-500. Only few campaigns are in processing and most of them are sending with idle status. Will that help?
 

Roshan Jonah

New Member
Will you describe in some way tech specs and configs for that real-world scenario? Maybe in form of a step-by-step tutorial, like "buy a 5-10-100-1000$ vps/aws/hardware server, install mailwizz+postfix/exim/powermta, make some config here and there, and that's your result in 700 mails per sec"))
We were able to achieve this speed by first optimizing our DB - so use Aurora Serverless (which is easiest to achieve optimization in for non-technical users), we use AWS API so pushing is obv much faster than chatty SMTP protocol but I am guessing powermta handles this sort of thing quite well. For computer capacity, make sure you have lots of CPUs so for example, we easily push 2M/hour with around 20 cores vCPU and about 6-8GB RAM. So I'd say more cores generally equates to faster sending (Emphasis on the word "generally"). And all this is possible thanks to optimized beautiful software by Cristian and the team - They have been super helpful :)

I am planning to write a blog post of what we've learned so far and also help others get on to this amazing piece of software so watch the space :D
 
Last edited:
Top