Software Engineering Asked by Jaguar on December 18, 2020
I want to fix my current Email Delivery system which sends email using a third-party email provider and creates a record for each email sent in RDS. Functionally this is how the system behaves –
campaign
. The table also stores information of leads (JSON condition) to whom email needs to be sentcampaign
table and calculates actual leads from the JSON conditon and retrieves their email addresses from lead
tableEmail
table is created. The table stores the information of sender and receiver along with the status of the email. The table also has relation to campaign
tableEmail
tableEmail
table are indexed because it is heavily read across multiple parts of the application. Due to this writes to the table have become slowerEmail
table becomes a bottleneck, which causes replication lag and impacts reports at various placesMy goal is to make inserts and reads on Email
table faster which is not possible using RDS.
Is there any other way I can use to scale this system with the capability to send millions of emails?
I see Elastic Search as one option for storing Email
table. Since Elastic Search is not a primary data store I need to build applications to sync this data to a persistent storage. Correct me if I am wrong.
It sounds like its the reports that are slowing you down.
Move all reporting to a datawarehouse on a separate box.
If that doesn't solve it.
Split the app so that different campaigns are run on separate databases.
Answered by Ewan on December 18, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP