# Laravel Distributed Systems (Laravel) > Comunicación basada en queue, events, outbox pattern, idempotencia, retries, circuit breaker, contratos de API, versionado, fundamentos de Saga - 22 preguntas de entrevista - Senior - [Preguntas de entrevista: Laravel](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista.md) ## 1. ¿Qué es el outbox pattern en los sistemas distribuidos de Laravel? **Respuesta** El outbox pattern almacena los messages/events en una tabla de la database durante la misma transacción que los datos de negocio, y luego los envía de forma asíncrona en un proceso separado. Esto garantiza que los messages siempre se envíen incluso si el sistema se cae después del commit de la DB. ShouldQueueAfterCommit en Laravel es una implementación parcial de este pattern, ya que despacha el job solo después del commit de la transacción, evitando las race conditions donde el job se ejecuta antes de que los datos estén disponibles. ## 2. ¿Cuál es la diferencia principal entre ShouldQueue y ShouldQueueAfterCommit? **Respuesta** ShouldQueue despacha el job inmediatamente a la queue, incluso si la transacción DB aún no se ha commiteado, lo que puede causar race conditions. ShouldQueueAfterCommit espera a que todas las transacciones DB se hayan commiteado antes de despachar el job, garantizando que los datos estén disponibles cuando el job se ejecuta. Usa ShouldQueueAfterCommit para los jobs que dependen de datos recién creados o modificados en una transacción, por ejemplo un job de envío de email después de crear un pedido. ## 3. ¿Qué es la idempotencia en el contexto de los sistemas distribuidos de Laravel? **Respuesta** La idempotencia significa que una operación puede ejecutarse varias veces sin cambiar el resultado más allá de la primera ejecución. En Laravel, esto evita efectos secundarios no deseados durante los retries de jobs o los messages duplicados. Por ejemplo, un job de creación de pedido idempotente verifica si el pedido ya existe antes de crearlo, evitando duplicados si el job se reintenta tras un timeout. Usa ShouldBeUnique, WithoutOverlapping o deduplicationId para garantizar la idempotencia. ## 19 preguntas más disponibles - ¿Cuál es la principal ventaja de usar events en lugar del dispatch directo de jobs para la comunicación entre servicios? - ¿En qué contexto se debe usar ShouldBeEncrypted para los queued jobs? Regístrate gratis: https://sharpskill.dev/es/login ## Otros temas de entrevista Laravel - [Fundamentos de PHP](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/php-basics.md): 25 preguntas, Junior - [Fundamentos de POO en PHP](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/php-oop-essentials.md): 20 preguntas, Junior - [Composer & Autoloading](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/composer-autoloading.md): 18 preguntas, Junior - [Fundamentos de Laravel](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/laravel-fundamentals.md): 20 preguntas, Junior - [Routing de Laravel](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/laravel-routing.md): 20 preguntas, Junior - [Blade Templates](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/blade-templates.md): 18 preguntas, Junior - [Request & Response](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/request-response.md): 20 preguntas, Junior - [Fundamentos de Eloquent ORM](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/eloquent-orm-basics.md): 22 preguntas, Junior - [Eloquent Relationships](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/eloquent-relationships.md): 25 preguntas, Mid-Level - [Migrations & Schema Builder](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/database-migrations.md): 20 preguntas, Mid-Level - [Validación y formularios](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/validation-forms.md): 22 preguntas, Mid-Level - [Autenticación](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/authentication.md): 20 preguntas, Mid-Level - [Autorización y Policies](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/authorization-policies.md): 18 preguntas, Mid-Level - [API Resources & Authentication](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/api-resources-authentication.md): 26 preguntas, Mid-Level - [Middleware](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/middleware.md): 18 preguntas, Mid-Level - [Service Container & DI](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/service-container-di.md): 20 preguntas, Mid-Level - [Queues & Jobs](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/queues-jobs.md): 22 preguntas, Mid-Level - [Events & Listeners](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/events-listeners.md): 18 preguntas, Mid-Level - [Notificaciones & Mail](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/notifications-mail.md): 20 preguntas, Mid-Level - [File Storage](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/file-storage.md): 18 preguntas, Mid-Level - [Testing & PHPUnit](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/testing-phpunit.md): 24 preguntas, Mid-Level - [Caching](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/caching.md): 18 preguntas, Mid-Level - [Livewire & Inertia](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/livewire-inertia.md): 20 preguntas, Mid-Level - [Eloquent Advanced](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/eloquent-advanced.md): 24 preguntas, Senior - [Repository Pattern](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/repository-pattern.md): 20 preguntas, Senior - [Laravel Packages](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/laravel-packages.md): 20 preguntas, Senior - [Performance Optimization](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/performance-optimization.md): 22 preguntas, Senior - [Security Best Practices](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/security-best-practices.md): 22 preguntas, Senior - [Laravel Octane](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/laravel-octane.md): 18 preguntas, Senior - [Observability & Monitoring](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/observability-monitoring.md): 20 preguntas, Senior - [Deployment & DevOps](https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/deployment-devops.md): 20 preguntas, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/es/technologies/laravel/preguntas-entrevista/laravel-distributed-systems