Development Story of the Slackbot 'Angmond' in a Distributed System Environment
Key point
KakaoPay shares how it resolved a concurrency issue encountered while operating a Slackbot in a distributed system environment, using transactions and Lock.
Details
KakaoPay operates its services in a distributed manner across two regions, Gasan and Pangyo, using Kubernetes(k8s)-based regional clusters for service stability and high availability.
While operating the internal Slackbot Angmond in this environment, a concurrency issue occurred where the Cronjob, instead of running only once at the designated time, intermittently sent messages twice. This happened because servers in both regions processed the cronjob simultaneously.
To resolve this, database transactions and SELECT FOR UPDATE LOCK were applied. Transactions ensured the atomicity of operations, and pessimistic locking (Pessimistic Write Lock) prevented a Race Condition where multiple servers accessed the same data simultaneously, securing data consistency.
This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.
Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.