
Laravel Distributed Systems
Queue tabanlı iletişim, events, outbox pattern, idempotency, retries, circuit breaker, API sözleşmeleri, versiyonlama, Saga temelleri
1Laravel dağıtık sistemlerinde outbox pattern nedir?
Laravel dağıtık sistemlerinde outbox pattern nedir?
Cevap
outbox pattern, messages/events'i iş verileriyle aynı transaction içinde bir database tablosunda saklar ve ardından bunları ayrı bir süreçte asenkron olarak gönderir. Bu, sistem DB commit sonrasında çökse bile messages'ın her zaman gönderilmesini sağlar. Laravel'deki ShouldQueueAfterCommit bu pattern'in kısmi bir uygulamasıdır; çünkü job'ı yalnızca transaction commit sonrasında dispatch eder ve böylece job'ın veriler hazır olmadan çalıştığı race condition'ları önler.
2ShouldQueue ve ShouldQueueAfterCommit arasındaki temel fark nedir?
ShouldQueue ve ShouldQueueAfterCommit arasındaki temel fark nedir?
Cevap
ShouldQueue, DB transaction'ı henüz commit edilmemiş olsa bile job'ı hemen queue'ya dispatch eder ve bu da race condition'lara yol açabilir. ShouldQueueAfterCommit, job'ı dispatch etmeden önce tüm DB transaction'larının commit edilmesini bekler ve böylece job çalıştığında verilerin hazır olmasını sağlar. Bir transaction içinde yeni oluşturulan veya değiştirilen verilere bağlı olan job'lar için, örneğin sipariş oluşturulduktan sonra email gönderen bir job için ShouldQueueAfterCommit kullanın.
3Laravel dağıtık sistemleri bağlamında idempotency nedir?
Laravel dağıtık sistemleri bağlamında idempotency nedir?
Cevap
Idempotency, bir işlemin birden çok kez çalıştırılmasına rağmen ilk çalıştırmanın ötesinde sonucu değiştirmemesi anlamına gelir. Laravel'de bu, job retries veya yinelenen messages sırasında istenmeyen yan etkileri önler. Örneğin, idempotent bir sipariş oluşturma job'ı, siparişi oluşturmadan önce siparişin zaten var olup olmadığını kontrol eder ve böylece job bir timeout sonrası yeniden denenirse yinelemeleri önler. Idempotency'yi sağlamak için ShouldBeUnique, WithoutOverlapping veya deduplicationId kullanın.
Servisler arası iletişimde doğrudan job dispatch yerine event kullanmanın temel avantajı nedir?
ShouldBeEncrypted queued job'lar için hangi bağlamda kullanılmalıdır?
+19 mülakat soruları
Diğer Laravel mülakat konuları
PHP Temelleri
PHP OOP Temelleri
Composer & Autoloading
Laravel Temelleri
Laravel Routing
Blade Templates
Request & Response
Eloquent ORM Temelleri
Eloquent Relationships
Migrations & Schema Builder
Doğrulama ve Formlar
Kimlik Doğrulama
Yetkilendirme ve Policies
API Resources & Authentication
Middleware
Service Container & DI
Queues & Jobs
Events & Listeners
Bildirimler & Mail
File Storage
Testing & PHPUnit
Caching
Livewire & Inertia
Eloquent Advanced
Repository Pattern
Laravel Packages
Performance Optimization
Security Best Practices
Laravel Octane
Observability & Monitoring
Deployment & DevOps
Bir sonraki mülakatın için Laravel'de uzmanlaş
Tüm sorulara, flashcards'a, teknik testlere, code review alıştırmalarına ve mülakat simülatörlerine eriş.
Ücretsiz başla