Skip to main content

Arkademi Mailer System

Overview​

This document explains the mailer system in Arkademi.

Brief Summary​

Mailer System is a system used to send emails automatically in an application or platform, sending notifications, messages, or other information to users. To support this mailer system, the RPC (Remote Procedure Call) chosen is RabbitMQ. RabbitMQ is open-source software that implements a secure, distributed, and asynchronous messaging protocol (AMQP) for sending and receiving messages. RabbitMQ can be used as part of a mailer system architecture to organize the queue of messages to be sent, process messages, and manage messages that fail to be sent.

As shown in the diagram below, the system is a one-way communication with more than 3 attempts to send a message that will send a failed response to the database. In terms of system architecture, applications Regular and Prakerja are similar, although the messages they send are different.

Mailer System

Worker

https://gitlab.com/arkademi/arkademi-backend-mailer-system/-/tree/dev?ref_type=heads

RabbitMQ

https://rabbit-mq.arkademi.com/

Mailer Format​

The email format is stored in the database with 2 main divisions as follows:

Regular​

Here are the emails that users will get, divided into several categories:

User​

Emails regular users will get that are related to the user's account.

ItemDescriptionActively Used
changeEmailNotification to change user email✅
forgotPasswordNotification to reset password✅
deleteAccountConfirmation of account deletion✅
afterRegisterCongratulation after registering an account
revampAfterRegisterRevamp: Congratulation after registering an account✅

Order​

Here is the email a regular user gets regarding their order:

ItemDescriptionActively Used
orderPendingOrder created and awaiting payment✅
orderCompletedPayment complete
orderFailedOrder canceled✅
pendingOrder created and awaiting payment✅
completedSuccessful payment✅

Course​

Here is the email a regular user gets regarding their course:

ItemDescriptionActively Used
rekomendasiKelasCourse recommendation✅
durasiReminderCourse duration reminder is almost over✅
selesaiKelasUser has completed the class and received a certificate✅

B2B​

Here are the emails that Arkademi Team app users get:

ItemDescriptionActively Used
InvitationRegisterInvitation to register as a member of an organization✅
AddTeamB2BUser is a member of a team✅
NewOrganization-teamArkademi Team welcome greeting✅
AddCourseB2BUser is enrolled in a course✅

Prakerja​

Here are the emails that users will get, divided into several categories:

Order​

Here is the email a Prakerja user gets regarding their order:

ItemDescriptionDetailActively Used
order-complete-prakerjaCongratulates the user on joining the courseSPL✅
order-complete-web-prakerjaInstruction to immediately take the Pre-Test to start the webinarWebinar✅

Course​

Here are the emails a Prakerja user gets regarding their course:

ItemDescriptionDetailActively Used
unactive-prakerjaReminder to start the courseBoth✅
start-sesi-prakerjaReminder to complete the course to get the certificateBoth✅
tpm-prakerjaReminder to work on Tugas Praktik MandiriSPL✅
tpm-web-prakerjaReminder to complete Kuis and Tugas Praktik Mandiri to access Webinar linkWebinar✅
uk-prakerjaReminder to complete the Uji Keterampilan before the deadlineSPL✅
uk-web-prakerjaReminder to do the Uji Keterampilan to get the Certificate immediatelyWebinar✅
feedback-prakerjaReminder to fill out course feedbackBoth✅

Created 19 Feb 2024