Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

“Everything fails, all the time”. - Werner Vogels, CTO and Vice President Amazon. Back-End

Slide 4

Slide 4 text

Agenda ● Mengenal message queue ● Mengenal RabbitMQ ● Implementasi message queue pada REST API Back-End

Slide 5

Slide 5 text

Back-End Message Queue

Slide 6

Slide 6 text

What is Message Queue? Message queue adalah bentuk komunikasi asynchronous antar layanan (services) yang biasanya digunakan pada arsitektur microservices. Back-End

Slide 7

Slide 7 text

Back-End Apa contoh penerapannya di kehidupan sehari-hari?? 🤔

Slide 8

Slide 8 text

Why Message Queue? ● Memisahkan (decoupling). ● Keandalan (Reliability). ● Skalabilitas (Scalability). Back-End

Slide 9

Slide 9 text

Message Queue Use Case ● Ecommerce: order process, shipping, invoice, dll. ● Financial services: transaction processing. ● Analytics: user log. Back-End

Slide 10

Slide 10 text

When to Use Message Queue? ● Pengguna Sudah Ribuan ● Asynchronous Proses ● Microservices Arsitektur ● Analytics Back-End

Slide 11

Slide 11 text

Back-End Message Queue Type

Slide 12

Slide 12 text

Point-to-point Point-to-point messaging adalah pola distribusi yang digunakan dalam message queue. Point-to-point messaging memiliki hubungan one-to-one antara pengirim dan penerima pesan (disebut juga sebagai producer dan consumer). Back-End

Slide 13

Slide 13 text

Publish/subscribe Publish/subscribe adalah pola message queue yang memungkinkan pesan untuk di-broadcast ke berbagai bagian sistem secara asinkron. Pesan apa pun yang di-publish ke suatu topic akan segera diterima oleh semua yang subscribe ke topik tersebut. Back-End

Slide 14

Slide 14 text

Message Queue Component Producer Queue Consumer

Slide 15

Slide 15 text

Back-End Rabbit MQ

Slide 16

Slide 16 text

RabbitMQ Back-End RabbitMQ adalah salah satu message broker open-source yang populer digunakan. RabbitMQ dapat mendukung banyak protokol seperti AMQP, STOMP, MQTT, HTTP, dan WebSocket.

Slide 17

Slide 17 text

Install RabbitMQ Back-End docker pull rabbitmq:management docker run --name rabbitmq -p 5672:5672 -p 15672:15672 -d rabbitmq:management

Slide 18

Slide 18 text

Back-End Demo RabbitMQ di REST API https://github.com/arasopraza/Demo-Developer-Coaching-129.git

Slide 19

Slide 19 text

Menghubungkan RabbitMQ const connection = await amqp.connect(process.env.RABBITMQ_SERVER); const channel = await connection.createChannel(); await channel.assertQueue(queue, { durable: true, }); await channel.sendToQueue(queue, Buffer.from(message));

Slide 20

Slide 20 text

Menghubungkan Consumer ke RabbitMQ const connection = await amqp.connect(process.env.RABBITMQ_SERVER); const channel = await connection.createChannel(); await channel.assertQueue('order:confirm', { durable: true, }); channel.consume('order:confirm', listener.listen, { noAck: true });

Slide 21

Slide 21 text

Feedback! Hadiah: ● 2 Token Langganan Academy (30 Hari) *untuk pengisi feedback terpilih! dicoding.id/devcoachfeedback

Slide 22

Slide 22 text

Thank You arasopraza [email protected] arasopraza Back-End arsyopraza