# Laravel Distributed Systems (Laravel) > queue ベースの通信、events、outbox pattern、冪等性、retries、circuit breaker、API 契約、バージョニング、Saga の基礎 - 22 面接問題 - Senior - [面接問題: Laravel](https://sharpskill.dev/ja/technologies/laravel/interview-questions.md) ## 1. Laravel の分散システムにおける outbox pattern とは何ですか? **回答** outbox pattern は、業務データと同じトランザクション内で messages/events を database テーブルに保存し、その後別のプロセスで非同期に送信するものです。これにより、DB の commit 後にシステムがクラッシュしても messages が必ず送信されることが保証されます。Laravel の ShouldQueueAfterCommit はこの pattern の部分的な実装であり、トランザクションの commit 後にのみ job を dispatch するため、データが利用可能になる前に job が実行される race condition を回避します。 ## 2. ShouldQueue と ShouldQueueAfterCommit の主な違いは何ですか? **回答** ShouldQueue は DB トランザクションがまだ commit されていなくても job を即座に queue に dispatch するため、race condition を引き起こす可能性があります。ShouldQueueAfterCommit は job を dispatch する前にすべての DB トランザクションが commit されるのを待つため、job の実行時にデータが利用可能であることが保証されます。トランザクション内で新しく作成または変更されたデータに依存する job、たとえば注文作成後にメールを送信する job には ShouldQueueAfterCommit を使用してください。 ## 3. Laravel の分散システムの文脈における冪等性とは何ですか? **回答** 冪等性とは、ある操作を複数回実行しても、最初の実行を超えて結果が変化しないことを意味します。Laravel では、これによって job の retries や重複した messages の際に望ましくない副作用を防ぎます。たとえば、冪等な注文作成 job は、作成する前に注文がすでに存在するかどうかを確認し、timeout 後に job が再実行されても重複を回避します。冪等性を保証するには、ShouldBeUnique、WithoutOverlapping、または deduplicationId を使用してください。 ## さらに19問利用可能 - サービス間通信において、job を直接 dispatch する代わりに event を使用する主な利点は何ですか? - queued job に対して ShouldBeEncrypted をどのような状況で使用すべきですか? 無料で登録: https://sharpskill.dev/ja/login ## その他のLaravel面接トピック - [PHPの基礎](https://sharpskill.dev/ja/technologies/laravel/interview-questions/php-basics.md): 25問, Junior - [PHP オブジェクト指向の基礎](https://sharpskill.dev/ja/technologies/laravel/interview-questions/php-oop-essentials.md): 20問, Junior - [Composer & Autoloading](https://sharpskill.dev/ja/technologies/laravel/interview-questions/composer-autoloading.md): 18問, Junior - [Laravelの基礎](https://sharpskill.dev/ja/technologies/laravel/interview-questions/laravel-fundamentals.md): 20問, Junior - [Laravel ルーティング](https://sharpskill.dev/ja/technologies/laravel/interview-questions/laravel-routing.md): 20問, Junior - [Blade Templates](https://sharpskill.dev/ja/technologies/laravel/interview-questions/blade-templates.md): 18問, Junior - [Request & Response](https://sharpskill.dev/ja/technologies/laravel/interview-questions/request-response.md): 20問, Junior - [Eloquent ORM の基礎](https://sharpskill.dev/ja/technologies/laravel/interview-questions/eloquent-orm-basics.md): 22問, Junior - [Eloquent Relationships](https://sharpskill.dev/ja/technologies/laravel/interview-questions/eloquent-relationships.md): 25問, Mid-Level - [Migrations & Schema Builder](https://sharpskill.dev/ja/technologies/laravel/interview-questions/database-migrations.md): 20問, Mid-Level - [バリデーションとフォーム](https://sharpskill.dev/ja/technologies/laravel/interview-questions/validation-forms.md): 22問, Mid-Level - [認証](https://sharpskill.dev/ja/technologies/laravel/interview-questions/authentication.md): 20問, Mid-Level - [認可とPolicies](https://sharpskill.dev/ja/technologies/laravel/interview-questions/authorization-policies.md): 18問, Mid-Level - [API Resources & Authentication](https://sharpskill.dev/ja/technologies/laravel/interview-questions/api-resources-authentication.md): 26問, Mid-Level - [ミドルウェア](https://sharpskill.dev/ja/technologies/laravel/interview-questions/middleware.md): 18問, Mid-Level - [Service Container & DI](https://sharpskill.dev/ja/technologies/laravel/interview-questions/service-container-di.md): 20問, Mid-Level - [Queues & Jobs](https://sharpskill.dev/ja/technologies/laravel/interview-questions/queues-jobs.md): 22問, Mid-Level - [Events & Listeners](https://sharpskill.dev/ja/technologies/laravel/interview-questions/events-listeners.md): 18問, Mid-Level - [通知とメール](https://sharpskill.dev/ja/technologies/laravel/interview-questions/notifications-mail.md): 20問, Mid-Level - [File Storage](https://sharpskill.dev/ja/technologies/laravel/interview-questions/file-storage.md): 18問, Mid-Level - [Testing & PHPUnit](https://sharpskill.dev/ja/technologies/laravel/interview-questions/testing-phpunit.md): 24問, Mid-Level - [Caching](https://sharpskill.dev/ja/technologies/laravel/interview-questions/caching.md): 18問, Mid-Level - [Livewire & Inertia](https://sharpskill.dev/ja/technologies/laravel/interview-questions/livewire-inertia.md): 20問, Mid-Level - [Eloquent Advanced](https://sharpskill.dev/ja/technologies/laravel/interview-questions/eloquent-advanced.md): 24問, Senior - [Repository Pattern](https://sharpskill.dev/ja/technologies/laravel/interview-questions/repository-pattern.md): 20問, Senior - [Laravel パッケージ](https://sharpskill.dev/ja/technologies/laravel/interview-questions/laravel-packages.md): 20問, Senior - [Performance Optimization](https://sharpskill.dev/ja/technologies/laravel/interview-questions/performance-optimization.md): 22問, Senior - [Security Best Practices](https://sharpskill.dev/ja/technologies/laravel/interview-questions/security-best-practices.md): 22問, Senior - [Laravel Octane](https://sharpskill.dev/ja/technologies/laravel/interview-questions/laravel-octane.md): 18問, Senior - [Observability & Monitoring](https://sharpskill.dev/ja/technologies/laravel/interview-questions/observability-monitoring.md): 20問, Senior - [Deployment & DevOps](https://sharpskill.dev/ja/technologies/laravel/interview-questions/deployment-devops.md): 20問, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/ja/technologies/laravel/interview-questions/laravel-distributed-systems