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