# Laravel Distributed Systems (Laravel) > Giao tiếp dựa trên queue, events, outbox pattern, tính idempotency, retries, circuit breaker, hợp đồng API, versioning, kiến thức cơ bản về Saga - 22 câu hỏi phỏng vấn - Senior - [Câu hỏi phỏng vấn: Laravel](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van.md) ## 1. Outbox pattern trong các hệ thống phân tán Laravel là gì? **Câu trả lời** outbox pattern lưu trữ messages/events vào một bảng database trong cùng transaction với dữ liệu nghiệp vụ, sau đó gửi chúng một cách bất đồng bộ trong một tiến trình riêng. Điều này đảm bảo messages luôn được gửi ngay cả khi hệ thống crash sau khi commit DB. ShouldQueueAfterCommit của Laravel là một triển khai một phần của pattern này, vì nó chỉ dispatch job sau khi transaction được commit, tránh các race condition khi job thực thi trước khi dữ liệu sẵn sàng. ## 2. Sự khác biệt chính giữa ShouldQueue và ShouldQueueAfterCommit là gì? **Câu trả lời** ShouldQueue dispatch job ngay lập tức vào queue, ngay cả khi transaction DB chưa được commit, điều này có thể gây ra race condition. ShouldQueueAfterCommit chờ tất cả transaction DB được commit trước khi dispatch job, đảm bảo dữ liệu sẵn sàng khi job thực thi. Sử dụng ShouldQueueAfterCommit cho các job phụ thuộc vào dữ liệu vừa được tạo hoặc sửa đổi trong một transaction, ví dụ job gửi email sau khi tạo đơn hàng. ## 3. Tính idempotency trong bối cảnh các hệ thống phân tán Laravel là gì? **Câu trả lời** Tính idempotency có nghĩa là một thao tác có thể được thực thi nhiều lần mà không làm thay đổi kết quả ngoài lần thực thi đầu tiên. Trong Laravel, điều này ngăn chặn các tác dụng phụ không mong muốn trong quá trình retries job hoặc messages bị trùng lặp. Ví dụ, một job tạo đơn hàng có tính idempotency sẽ kiểm tra xem đơn hàng đã tồn tại hay chưa trước khi tạo, tránh trùng lặp nếu job được retry sau một timeout. Sử dụng ShouldBeUnique, WithoutOverlapping hoặc deduplicationId để đảm bảo tính idempotency. ## Còn 19 câu hỏi nữa - Ưu điểm chính của việc sử dụng event thay vì dispatch job trực tiếp cho giao tiếp giữa các service là gì? - Trong bối cảnh nào nên sử dụng ShouldBeEncrypted cho queued job? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn Laravel khác - [Cơ bản về PHP](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/php-basics.md): 25 câu hỏi, Junior - [Kiến thức cơ bản về OOP trong PHP](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/php-oop-essentials.md): 20 câu hỏi, Junior - [Composer & Autoloading](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/composer-autoloading.md): 18 câu hỏi, Junior - [Kiến thức cơ bản về Laravel](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/laravel-fundamentals.md): 20 câu hỏi, Junior - [Routing trong Laravel](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/laravel-routing.md): 20 câu hỏi, Junior - [Blade Templates](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/blade-templates.md): 18 câu hỏi, Junior - [Request & Response](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/request-response.md): 20 câu hỏi, Junior - [Kiến thức cơ bản về Eloquent ORM](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/eloquent-orm-basics.md): 22 câu hỏi, Junior - [Eloquent Relationships](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/eloquent-relationships.md): 25 câu hỏi, Mid-Level - [Migrations & Schema Builder](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/database-migrations.md): 20 câu hỏi, Mid-Level - [Xác thực và Form](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/validation-forms.md): 22 câu hỏi, Mid-Level - [Xác thực](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/authentication.md): 20 câu hỏi, Mid-Level - [Phân quyền và Policies](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/authorization-policies.md): 18 câu hỏi, Mid-Level - [API Resources & Authentication](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/api-resources-authentication.md): 26 câu hỏi, Mid-Level - [Middleware](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/middleware.md): 18 câu hỏi, Mid-Level - [Service Container & DI](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/service-container-di.md): 20 câu hỏi, Mid-Level - [Queues & Jobs](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/queues-jobs.md): 22 câu hỏi, Mid-Level - [Events & Listeners](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/events-listeners.md): 18 câu hỏi, Mid-Level - [Thông báo & Mail](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/notifications-mail.md): 20 câu hỏi, Mid-Level - [File Storage](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/file-storage.md): 18 câu hỏi, Mid-Level - [Testing & PHPUnit](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/testing-phpunit.md): 24 câu hỏi, Mid-Level - [Caching](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/caching.md): 18 câu hỏi, Mid-Level - [Livewire & Inertia](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/livewire-inertia.md): 20 câu hỏi, Mid-Level - [Eloquent Advanced](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/eloquent-advanced.md): 24 câu hỏi, Senior - [Repository Pattern](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/repository-pattern.md): 20 câu hỏi, Senior - [Laravel Packages](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/laravel-packages.md): 20 câu hỏi, Senior - [Performance Optimization](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/performance-optimization.md): 22 câu hỏi, Senior - [Security Best Practices](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/security-best-practices.md): 22 câu hỏi, Senior - [Laravel Octane](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/laravel-octane.md): 18 câu hỏi, Senior - [Observability & Monitoring](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/observability-monitoring.md): 20 câu hỏi, Senior - [Deployment & DevOps](https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/deployment-devops.md): 20 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/laravel/cau-hoi-phong-van/laravel-distributed-systems