Laravel

Laravel Distributed Systems

Queue tabanlı iletişim, events, outbox pattern, idempotency, retries, circuit breaker, API sözleşmeleri, versiyonlama, Saga temelleri

22 mülakat soruları·
Senior
1

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.

2

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.

3

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.

4

Servisler arası iletişimde doğrudan job dispatch yerine event kullanmanın temel avantajı nedir?

5

ShouldBeEncrypted queued job'lar için hangi bağlamda kullanılmalıdır?

+19 mülakat soruları

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