Implementasi Microservices dengan Laravel Events Queues (part 1)

Implementasi Microservices dengan Laravel Events Queues (part 1)

Implementasi Microservices dengan Laravel Events akan kita bahas pada kesempatan kali ini. Pada kesempatan ini penulis baru saja selesai memindahkan / memecah beberapa bagian program pada GuestPro Cloud PMS menjadi bagian terpisah. ingin tahu lebih lanjut? mari kita bahas.

Introduction

Microservices adalah sebuah arsitektur aplikasi yang mengusung kosep service oriented architecture (SOA) dimana terdapat kumpulan proses independen dan kecil yang berkomunikasi antara satu dengan lainnya untuk membentuk aplikasi kompleks yang agnostik terhadap bahasa API apa pun. Servis-servis ini terdiri dari blok-blok kecil, terpisah, dan fokus pada tugas-tugas ringan untuk memfasilitasi metode modular dalam pembangunan sistem.

Laravel Events merupakan fitur dari laravel yang dapat kita gunakan untuk membangun sebuah arsitektur microservices pada aplikasi kita. Laravel events merupakan fitur laravel yang akan kita gunakan untuk men-subscribe / listen sebuah events dalam aplikasi kita. semisal sebuah event register new user dijalankan, kita akan mengirim email pada user tersebut. nah job mengirim email ini akan dijalankan oleh listener dari events kita. listener bisa langsung menjalankan job terebut atau memasukkannya pada laravel Queues.

Laravel Queues merupakan fitur queue yang ada pada laravel, saat ini laravel queues telah mensupport berbagai jenis queue system mulai dari database, redis, hingga AmazonSQS. dengan laravel queues ini kita bisa mengurangi proses yang memakan waktu proses lama pada aplikasi kita, dengan memasukkan proses itu dalam queue dan menjalankanya pada background system atau dijalankan oleh modul lain pada server lain. contoh proses yang biasanya dimasukkan ke queue diantaranya mengirim email register, re-kalkulasi inventory dan lainnya.

Goal

Pada tutorial ini kita akan membuat sebuah events listener untuk event new user register, dimana ketika event ini dijalankan kita akan mengirimkan sebuah email kepada user, dimana email ini akan dikirim secara background.

Membuat Events / Listeners

Pertama kita akan membuat events dan listeners, berikut merupakan langkah – langkahnya:

Mendaftarkan Events dan Listeners

Untuk mendaftarkan events dan listeners kita harus mendaftarkannya pada array listener pada file   app\Providers\EventServiceProvider.php disini kita akan mendaftarkan sebuah Events ‘NewUserRegistered’ dan sebuah listener ‘EmailRegisteredUser’ seperti berikut :

Membuat class Events dan Listeners

Untuk membuat class events dan listeners kita cukup meng-generatenya secara otomatis dengan bantuan php artisan, sebagai berikut :

selanjutnya akan muncul 1 buah class event app\Events\NewUserRegistered.php dan 1 buah class listener  app\Listeners\EmailRegisteredUser.php

Membuat Events

Sebuah class events merupakan class yang digunakan untuk menerima data dari sebuah events, pada tutorial ini kita akan menerima sebuah alamat email ketika event NewUserRegistered di jalankan. sebagai berikut :

dari potongan kode diatas kita menerima data $email dari constructor class NewUserRegistered.

Membuat Listeners

Class listeners merupakan class yang nantinya akan menerima data dari events. events listeners akan menerima instans dari events secara default pada method handle . berikut merupakan koden untuk listener kita :

 

Testing via Browser menggunakan route.php

Dalam tutorial ini karena tujuan kita untuk membuat events listeners kita bisa melakukan testing apakah events listeners yang kita buat tadi bisa berjalan dengan benar atau tidak, untuk mempermudah testing kita akan menggunakan browser dan langsung membuat route pada route.php laravel kita, sebagai berikut:

selanjutnya kita tinggal akses via browser :

Kita bisa saja menempelkan events ini pada potongan kode ‘event(new NewUserRegistered(‘[email protected]’));‘ pada kode registrasi user kita.

Kesimulan

Laravel Events Listeners merupakan tahap awal kita untuk membangun sebuah aplikasi microservices, sampai disini kita sudah belajar mendaftarkan events listener pada provider events laravel, selanjutnya membuat class events dan listeners sesuai kebutuhan kita. kedepannya kita bisa memecah proses – proses dari aplikasi menjadi blok-blok kecil, terpisah, dan fokus pada tugas-tugas ringan pada sistem.

Selanjutnya

sampai disini kita sudah berhasil membuat events listener, namun listeners yang kita buat masih dijalankan langsung oleh aplikasi kita, untuk mendukuk konsep microservices kita akan memasukkan job dari listeners ke dalam queue dan dijalankan oleh server lain.

  1. Implementasi Microservices dengan Laravel Events Queues (part 2)

Author: Wisnu Sudarmadi

Programmer juga nyambi di bidang system dan infrastuktur. Berpengalaman sebagai System Engineer sejak tahun 2012. Selama beberapa tahun terakhir bekerja di salah satu Bank BUMN.

Was this article helpful?

Related Articles