# Laravel Distributed Systems (Laravel) > Komunikasi berbasis queue, events, outbox pattern, idempotensi, retries, circuit breaker, kontrak API, versioning, dasar Saga - 22 pertanyaan wawancara - Senior - [Pertanyaan Wawancara: Laravel](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara.md) ## 1. Apa itu outbox pattern dalam sistem terdistribusi Laravel? **Jawaban** outbox pattern menyimpan messages/events dalam tabel database selama transaksi yang sama dengan data bisnis, lalu mengirimkannya secara asinkron dalam proses terpisah. Ini memastikan messages selalu terkirim bahkan jika sistem crash setelah commit DB. ShouldQueueAfterCommit di Laravel adalah implementasi parsial dari pattern ini, karena hanya men-dispatch job setelah commit transaksi, sehingga menghindari race condition di mana job dieksekusi sebelum data tersedia. ## 2. Apa perbedaan utama antara ShouldQueue dan ShouldQueueAfterCommit? **Jawaban** ShouldQueue men-dispatch job segera ke queue, bahkan jika transaksi DB belum di-commit, yang dapat menyebabkan race condition. ShouldQueueAfterCommit menunggu semua transaksi DB di-commit sebelum men-dispatch job, sehingga memastikan data tersedia saat job dieksekusi. Gunakan ShouldQueueAfterCommit untuk job yang bergantung pada data yang baru dibuat atau diubah dalam suatu transaksi, misalnya job pengiriman email setelah pembuatan pesanan. ## 3. Apa itu idempotensi dalam konteks sistem terdistribusi Laravel? **Jawaban** Idempotensi berarti suatu operasi dapat dieksekusi beberapa kali tanpa mengubah hasil melebihi eksekusi pertama. Di Laravel, ini mencegah efek samping yang tidak diinginkan selama retries job atau messages duplikat. Misalnya, job pembuatan pesanan yang idempoten memeriksa apakah pesanan sudah ada sebelum membuatnya, sehingga menghindari duplikasi jika job di-retry setelah timeout. Gunakan ShouldBeUnique, WithoutOverlapping, atau deduplicationId untuk memastikan idempotensi. ## 19 pertanyaan lagi tersedia - Apa keuntungan utama menggunakan event dibandingkan dispatch job secara langsung untuk komunikasi antar-service? - Dalam konteks apa ShouldBeEncrypted sebaiknya digunakan untuk queued job? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara Laravel lainnya - [Dasar-Dasar PHP](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/php-basics.md): 25 pertanyaan, Junior - [Dasar OOP PHP](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/php-oop-essentials.md): 20 pertanyaan, Junior - [Composer & Autoloading](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/composer-autoloading.md): 18 pertanyaan, Junior - [Dasar-Dasar Laravel](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-fundamentals.md): 20 pertanyaan, Junior - [Routing Laravel](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-routing.md): 20 pertanyaan, Junior - [Blade Templates](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/blade-templates.md): 18 pertanyaan, Junior - [Request & Response](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/request-response.md): 20 pertanyaan, Junior - [Dasar-Dasar Eloquent ORM](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/eloquent-orm-basics.md): 22 pertanyaan, Junior - [Eloquent Relationships](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/eloquent-relationships.md): 25 pertanyaan, Mid-Level - [Migrations & Schema Builder](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/database-migrations.md): 20 pertanyaan, Mid-Level - [Validasi & Formulir](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/validation-forms.md): 22 pertanyaan, Mid-Level - [Autentikasi](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/authentication.md): 20 pertanyaan, Mid-Level - [Otorisasi & Policies](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/authorization-policies.md): 18 pertanyaan, Mid-Level - [API Resources & Authentication](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/api-resources-authentication.md): 26 pertanyaan, Mid-Level - [Middleware](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/middleware.md): 18 pertanyaan, Mid-Level - [Service Container & DI](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/service-container-di.md): 20 pertanyaan, Mid-Level - [Queues & Jobs](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/queues-jobs.md): 22 pertanyaan, Mid-Level - [Events & Listeners](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/events-listeners.md): 18 pertanyaan, Mid-Level - [Notifikasi & Mail](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/notifications-mail.md): 20 pertanyaan, Mid-Level - [File Storage](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/file-storage.md): 18 pertanyaan, Mid-Level - [Testing & PHPUnit](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/testing-phpunit.md): 24 pertanyaan, Mid-Level - [Caching](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/caching.md): 18 pertanyaan, Mid-Level - [Livewire & Inertia](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/livewire-inertia.md): 20 pertanyaan, Mid-Level - [Eloquent Advanced](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/eloquent-advanced.md): 24 pertanyaan, Senior - [Repository Pattern](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/repository-pattern.md): 20 pertanyaan, Senior - [Laravel Packages](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-packages.md): 20 pertanyaan, Senior - [Performance Optimization](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/performance-optimization.md): 22 pertanyaan, Senior - [Security Best Practices](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/security-best-practices.md): 22 pertanyaan, Senior - [Laravel Octane](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-octane.md): 18 pertanyaan, Senior - [Observability & Monitoring](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/observability-monitoring.md): 20 pertanyaan, Senior - [Deployment & DevOps](https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/deployment-devops.md): 20 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/laravel/pertanyaan-wawancara/laravel-distributed-systems