Elinize sağlık çok faydalı yayın. birkaç sorum olucak. Stream lerin state nasıl kurunuyor. Ayrıca command ve(ya) event ordering garantisi nasıl sağlanıyor. Yani bir variant'ın içindeki listing ile ilgili 2 farklı değişim geldiğinde önceliğinin garantisi sağlanıyor mu. Teşekkürler
Merhaba umarım cevaplar açıklayıcı olmuştur farklı bir soru daha olur ise buradan yada linkedin@furkaandogan üzerinden sorabilirsiniz. 1 - Stream sorusu için Stream ler için temelde Created, InProgress ve Completed state lerini düşünebiliriz. Bir stream state i completed değil ve son 15dk dır update almamış ise bizim için yarıda kalmış demektir bunları scheduler ile takip edip tekrardan başlatıyoruz Bir stream isteği için genel adımlar olarak şunları yapıyoruz; - Gelen istek özelinde uniq bir hash oluşturuyoruz (aynı request için hep aynı hash oluşacaktır) Bu hash i stream iş parçacıklarında grouping için kullanıyoruz - Stream isteğini iş parçacıklarına böl parça için özel hash oluştur created state de store et ve command ı queue gönder - Stream iş parçacığı başladığında state ini InProgress çekip her bir process de last position (en son gönderdiği content sırası) güncelle - Stream iş parçacağı bittiğinde state ini Completed çekip güncelle - Stream request ile oluşturulan (grouping) hash ile tüm iş parçacıkları bitmiş ise stream in tamamen bittiğini bildir 2 - Listing event ordering için Burada yaptığımız işlem listing bloklama işlemi. Bir listing birden fazla kuralla bloklanabilir. Bu kuralların işlenme sırası önemli değil. Her durumda listingin satılabilirliği kapanacak. O yüzden kuralların sıralı işlenmesiyle alakalı bir endişemiz yok.
elinize sağlık. teşekkürler
Elinize sağlık çok faydalı yayın. birkaç sorum olucak. Stream lerin state nasıl kurunuyor. Ayrıca command ve(ya) event ordering garantisi nasıl sağlanıyor. Yani bir variant'ın içindeki listing ile ilgili 2 farklı değişim geldiğinde önceliğinin garantisi sağlanıyor mu. Teşekkürler
Merhaba umarım cevaplar açıklayıcı olmuştur farklı bir soru daha olur ise buradan yada linkedin@furkaandogan üzerinden sorabilirsiniz.
1 - Stream sorusu için
Stream ler için temelde Created, InProgress ve Completed state lerini düşünebiliriz.
Bir stream state i completed değil ve son 15dk dır update almamış ise bizim için yarıda kalmış demektir bunları scheduler ile takip edip tekrardan başlatıyoruz
Bir stream isteği için genel adımlar olarak şunları yapıyoruz;
- Gelen istek özelinde uniq bir hash oluşturuyoruz (aynı request için hep aynı hash oluşacaktır) Bu hash i stream iş parçacıklarında grouping için kullanıyoruz
- Stream isteğini iş parçacıklarına böl parça için özel hash oluştur created state de store et ve command ı queue gönder
- Stream iş parçacığı başladığında state ini InProgress çekip her bir process de last position (en son gönderdiği content sırası) güncelle
- Stream iş parçacağı bittiğinde state ini Completed çekip güncelle
- Stream request ile oluşturulan (grouping) hash ile tüm iş parçacıkları bitmiş ise stream in tamamen bittiğini bildir
2 - Listing event ordering için
Burada yaptığımız işlem listing bloklama işlemi. Bir listing birden fazla kuralla bloklanabilir. Bu kuralların işlenme sırası önemli değil. Her durumda listingin satılabilirliği kapanacak. O yüzden kuralların sıralı işlenmesiyle alakalı bir endişemiz yok.
Cevap için teşekkür ederim.