Juli 14, 2026
ChatGPT Image 13 Jun 2026, 07.06.29
Pelajari perbedaan SQS dan SNS serta implementasi fan-out pattern, DLQ, dan visibility timeout untuk microservices yang scalable.

Mengapa Microservices Membutuhkan Asynchronous Messaging?

Seiring berkembangnya aplikasi modern, arsitektur microservices menjadi pilihan utama karena menawarkan fleksibilitas, skalabilitas, dan kemudahan pengelolaan. Namun, semakin banyak service yang saling berkomunikasi, semakin besar pula risiko terjadinya bottleneck dan kegagalan sistem.

Salah satu solusi terbaik adalah menggunakan asynchronous messaging. Dengan pendekatan ini, service tidak perlu saling menunggu respons secara langsung. Sebaliknya, pesan dikirim melalui perantara sehingga setiap service dapat bekerja secara independen.

Di ekosistem AWS, dua layanan yang paling sering digunakan untuk kebutuhan ini adalah Amazon SQS dan Amazon SNS.

Keduanya memiliki fungsi yang berbeda namun saling melengkapi dalam membangun sistem microservices yang tangguh dan scalable.


Apa Itu Amazon SQS?

Amazon Simple Queue Service (SQS) adalah layanan message queue yang memungkinkan aplikasi mengirim, menyimpan, dan menerima pesan secara aman tanpa kehilangan data.

Konsep utamanya adalah producer mengirim pesan ke queue, kemudian consumer mengambil pesan tersebut untuk diproses.

Karakteristik SQS

  • Menggunakan model Queue
  • Satu pesan diproses oleh satu consumer
  • Consumer melakukan pull message
  • Mendukung retry otomatis
  • Cocok untuk workload asynchronous
  • Mampu menangani lonjakan trafik secara otomatis

Alur Kerja SQS

  1. Producer mengirim pesan ke queue.
  2. Pesan disimpan hingga diambil consumer.
  3. Consumer melakukan polling queue.
  4. Pesan diproses.
  5. Jika berhasil, pesan dihapus dari queue.

Apa Itu Amazon SNS?

Amazon Simple Notification Service (SNS) adalah layanan publish-subscribe (Pub/Sub) yang digunakan untuk mendistribusikan pesan ke banyak subscriber secara bersamaan.

SNS sangat cocok ketika satu event harus diterima oleh banyak service.

Karakteristik SNS

  • Menggunakan model Topic
  • Mendukung banyak subscriber
  • Menggunakan mekanisme push
  • Real-time event delivery
  • Cocok untuk event-driven architecture

Alur Kerja SNS

  1. Producer mengirim pesan ke Topic SNS.
  2. SNS menerima event.
  3. SNS mendistribusikan pesan ke seluruh subscriber.
  4. Setiap subscriber memproses pesan secara independen.

Perbedaan SQS dan SNS

SQS (Queue)

  • Model komunikasi: Queue
  • Consumer: Satu consumer per pesan
  • Delivery: Pull
  • Tujuan utama: Buffering dan pemrosesan tugas
  • Cocok untuk workload asynchronous

SNS (Topic)

  • Model komunikasi: Publish/Subscribe
  • Consumer: Banyak subscriber
  • Delivery: Push
  • Tujuan utama: Distribusi event
  • Cocok untuk event broadcasting

Kapan Menggunakan SQS?

Gunakan SQS jika:

  • Ingin mengantrikan pekerjaan
  • Membutuhkan retry otomatis
  • Memerlukan kontrol konsumsi pesan
  • Ingin menghindari overload service

Kapan Menggunakan SNS?

Gunakan SNS jika:

  • Satu event harus diterima banyak service
  • Membutuhkan notifikasi real-time
  • Menggunakan event-driven architecture
  • Ingin memisahkan publisher dan subscriber

Fan-Out Pattern: SNS ke Banyak SQS Queue

Salah satu pola yang paling populer dalam microservices adalah Fan-Out Pattern.

Pada pola ini, satu event yang dipublikasikan ke SNS akan diteruskan ke beberapa queue SQS yang berbeda.

Contoh:

Customer melakukan checkout.

Event:

OrderCreated

Dikirim ke SNS Topic.

SNS kemudian meneruskan event ke beberapa queue:

  • Order Service Queue
  • Billing Service Queue
  • Inventory Service Queue
  • Shipping Service Queue
  • Notification Service Queue

Arsitektur Fan-Out

Order Service
      |
      v
   SNS Topic
  /    |    \
 /     |     \
v      v      v
SQS1  SQS2  SQS3
 |      |      |
Billing Inventory Notification

Keuntungan Fan-Out Pattern

  • Loose coupling antar service
  • Mudah menambah service baru
  • Tidak memengaruhi service lain
  • Skalabilitas lebih tinggi
  • Isolasi kegagalan lebih baik

Dead Letter Queue (DLQ)

Dalam sistem terdistribusi, kegagalan pemrosesan pesan pasti akan terjadi.

Karena itu AWS menyediakan Dead Letter Queue (DLQ).

DLQ adalah queue khusus untuk menampung pesan yang gagal diproses setelah beberapa kali percobaan.

Contoh Kasus

Billing Service gagal memproses pesan karena database sedang down.

SQS mencoba memproses ulang beberapa kali.

Jika tetap gagal:

Order Queue
     |
     v
Retry
     |
     v
Dead Letter Queue

Pesan dipindahkan ke DLQ sehingga tidak menghambat queue utama.

Manfaat DLQ

  • Mempermudah troubleshooting
  • Mengisolasi pesan bermasalah
  • Mengurangi risiko kehilangan data
  • Mempercepat proses recovery

Memahami Visibility Timeout

Visibility Timeout adalah periode ketika sebuah pesan tidak terlihat oleh consumer lain setelah diambil dari queue.

Tujuannya adalah mencegah satu pesan diproses oleh beberapa consumer secara bersamaan.

Contoh

Consumer mengambil pesan.

Visibility Timeout = 30 detik

Selama 30 detik:

  • Pesan tidak terlihat oleh consumer lain
  • Consumer memiliki waktu untuk memproses pesan

Jika processing selesai:

  • Pesan dihapus

Jika consumer gagal:

  • Pesan kembali muncul di queue
  • Consumer lain dapat memproses ulang

Best Practice Visibility Timeout

  • Lebih besar dari rata-rata waktu pemrosesan
  • Hindari terlalu pendek
  • Hindari terlalu panjang
  • Monitoring menggunakan CloudWatch

Best Practice Implementasi SQS dan SNS

Gunakan Fan-Out untuk Event Penting

Pisahkan setiap service ke queue masing-masing agar tidak saling bergantung.

Aktifkan Dead Letter Queue

Pastikan semua queue produksi memiliki DLQ.

Terapkan Idempotency

Karena pesan dapat diproses ulang, service harus mampu menangani duplicate message.

Monitoring Secara Real-Time

Pantau:

  • Queue depth
  • Message age
  • Error rate
  • Retry count

Terapkan Auto Scaling

Tambahkan consumer secara otomatis saat jumlah pesan meningkat.


Studi Kasus Implementasi E-Commerce

Saat pelanggan melakukan checkout:

  1. Order Service membuat pesanan.
  2. Event OrderCreated dikirim ke SNS.
  3. SNS mendistribusikan event ke:
    • Billing Queue
    • Inventory Queue
    • Shipping Queue
    • Notification Queue
  4. Masing-masing service memproses tugasnya sendiri.
  5. Jika salah satu service gagal, service lain tetap berjalan normal.

Hasilnya:

  • Sistem lebih resilient
  • Skalabilitas meningkat
  • Risiko cascading failure berkurang
  • Performa aplikasi lebih stabil

Kesimpulan

Amazon SQS dan Amazon SNS merupakan fondasi penting dalam membangun arsitektur microservices modern.

SQS berfungsi sebagai message queue yang memastikan pemrosesan pesan secara andal, sementara SNS berperan sebagai event broadcaster yang mendistribusikan informasi ke banyak service sekaligus.

Dengan menggabungkan SNS, SQS, Fan-Out Pattern, Dead Letter Queue, dan Visibility Timeout, organisasi dapat membangun sistem yang lebih resilient, scalable, serta mudah dikembangkan seiring pertumbuhan kebutuhan bisnis.

Microservices yang terhubung melalui asynchronous messaging bukan hanya lebih fleksibel, tetapi juga jauh lebih tahan terhadap gangguan dan lonjakan beban kerja.

“Microservices yang kuat bukan dibangun dari koneksi yang rapat, tetapi dari komunikasi yang terpisah namun tetap andal.”


FAQ SEO

1. Apa perbedaan utama antara SQS dan SNS?

SQS menggunakan model queue dengan mekanisme pull, sedangkan SNS menggunakan model publish-subscribe dengan mekanisme push.

2. Kapan sebaiknya menggunakan Amazon SQS?

Saat membutuhkan antrean pesan yang diproses oleh satu consumer secara andal.

3. Apa fungsi Amazon SNS?

Untuk mendistribusikan event atau notifikasi ke banyak subscriber secara bersamaan.

4. Apa itu Dead Letter Queue?

Queue khusus yang menyimpan pesan gagal diproses setelah mencapai batas retry.

5. Mengapa Visibility Timeout penting?

Untuk mencegah pesan diproses oleh beberapa consumer secara bersamaan.

6. Apa itu Fan-Out Pattern?

Arsitektur di mana satu event dari SNS diteruskan ke beberapa queue SQS berbeda.

7. Apakah SNS bisa langsung mengirim ke SQS?

Ya. SNS dapat mengirim pesan ke satu atau banyak queue SQS secara otomatis.


Apakah Anda sudah menggunakan SQS dan SNS dalam arsitektur microservices Anda?

Bagikan pengalaman Anda di kolom komentar. Jika artikel ini bermanfaat, jangan lupa membagikannya kepada rekan tim DevOps, Cloud Engineer, atau Software Architect lainnya. Ikuti juga artikel AWS dan Cloud Computing terbaru untuk mendapatkan panduan praktis, studi kasus, serta best practice implementasi cloud modern di lingkungan produksi.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Dilindungi Oleh
Shield Security