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.

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.
| Item | Description | Actively Used |
|---|---|---|
| changeEmail | Notification to change user email | ✅ |
| forgotPassword | Notification to reset password | ✅ |
| deleteAccount | Confirmation of account deletion | ✅ |
| afterRegister | Congratulation after registering an account | |
| revampAfterRegister | Revamp: Congratulation after registering an account | ✅ |
Order
Here is the email a regular user gets regarding their order:
| Item | Description | Actively Used |
|---|---|---|
| orderPending | Order created and awaiting payment | ✅ |
| orderCompleted | Payment complete | |
| orderFailed | Order canceled | ✅ |
| pending | Order created and awaiting payment | ✅ |
| completed | Successful payment | ✅ |
Course
Here is the email a regular user gets regarding their course:
| Item | Description | Actively Used |
|---|---|---|
| rekomendasiKelas | Course recommendation | ✅ |
| durasiReminder | Course duration reminder is almost over | ✅ |
| selesaiKelas | User has completed the class and received a certificate | ✅ |
B2B
Here are the emails that Arkademi Team app users get:
| Item | Description | Actively Used |
|---|---|---|
| InvitationRegister | Invitation to register as a member of an organization | ✅ |
| AddTeamB2B | User is a member of a team | ✅ |
| NewOrganization-team | Arkademi Team welcome greeting | ✅ |
| AddCourseB2B | User 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:
| Item | Description | Detail | Actively Used |
|---|---|---|---|
| order-complete-prakerja | Congratulates the user on joining the course | SPL | ✅ |
| order-complete-web-prakerja | Instruction to immediately take the Pre-Test to start the webinar | Webinar | ✅ |
Course
Here are the emails a Prakerja user gets regarding their course:
| Item | Description | Detail | Actively Used |
|---|---|---|---|
| unactive-prakerja | Reminder to start the course | Both | ✅ |
| start-sesi-prakerja | Reminder to complete the course to get the certificate | Both | ✅ |
| tpm-prakerja | Reminder to work on Tugas Praktik Mandiri | SPL | ✅ |
| tpm-web-prakerja | Reminder to complete Kuis and Tugas Praktik Mandiri to access Webinar link | Webinar | ✅ |
| uk-prakerja | Reminder to complete the Uji Keterampilan before the deadline | SPL | ✅ |
| uk-web-prakerja | Reminder to do the Uji Keterampilan to get the Certificate immediately | Webinar | ✅ |
| feedback-prakerja | Reminder to fill out course feedback | Both | ✅ |
Created 19 Feb 2024