Bazı Teknik Kelimeler…
Kendime aldığım notları burada paylaşmak istedim. Üniversite yıllarımda notlarım o kadar popülerdi ki fotokopilerde satılırdı! 😊 Şimdi de bu geleneği devam ettirerek yazılım dünyasındaki teknik terimlere dair notlarımı burada derliyorum.
Bu kelimeleri neden seçtim? Genelde blog okurken sıkça duyduğum, ama zamanla unuttuğum kelimeler oluyordu. Bunun önüne geçmek ve öğrendiklerimi kalıcı hale getirmek için not almayı alışkanlık edindim. Umarım bu notlar, başkaları için de faydalı bir rehber olur!
Webhook
Webhook’u ters bir API gibi düşünebilirsiniz. Bir uygulamaya kayıt olduğunuzda, bu uygulamada bir olay gerçekleştiğinde size bir tetikleme yapılmasını istiyorsanız Webhook kullanabilirsiniz. Farklı uygulamaların entegrasyon sağlaması için uygulama içinde oluşan olayları (event’leri) HTTP üzerinden JSON Payload’larıyla kendilerine abone (subscribe) olan diğer uygulamalara iletmek için kullanılır.
Big Bang Dönüşümü
Monolitik bir uygulamayı mikroservis mimarisine dönüştürmek ve bunu Big Bang yaklaşımıyla, yani tek seferde devreye almak ciddi bir maliyet çıkarabilir. Risklerin yüksek olduğu bu yaklaşım, genellikle büyük projelerde daha dikkatle ele alınmalıdır.
Strangler Pattern
Mikroservise geçiş için daha güvenli bir yol olan Strangler Pattern, mevcut monolitik mimariyi aşamalı olarak mikroservislere bölmeyi sağlar. Bu yaklaşımda, eski sistemi yavaş yavaş küçültüp, yeni sistemi adım adım devreye alabilirsiniz. Böylece büyük kesintiler ve risklerden kaçınılabilir.
Transaction Outbox
Dağıtık sistemlerde veri tutarlılığını sağlamak için kullanılan bir desendir. Transaction Outbox deseni, bir işlem tamamlandığında, aynı işlem bağlamında bir mesajın başka bir sisteme güvenilir şekilde gönderilmesini sağlar.
Pulling Publisher
Outbox deseninin bir parçası olarak düşünülebilir ve genellikle mesajları outbox tablosundan çekip mesaj kuyruğuna gönderen bileşeni ifade eder. Bu bileşen, periyodik olarak outbox tablosunu tarar ve işlenmemiş mesajları bulur.
Transaction Log Tailing
Veritabanı işlem loglarını izleyerek veri değişikliklerini gerçek zamanlı olarak yakalar ve bu değişiklikleri başka sistemlere iletir. Veri entegrasyonu ve gerçek zamanlı analiz için etkili bir yöntemdir.
Transient
Transient kelimesi 2 farklı context’de farklı anlamları var.
Java’s transient: Bir alanın serileştirilmemesi gerektiğini belirtir.
JPA’s @Transient: Bir alanın veritabanında saklanmaması gerektiğini belirtir. Semantik anlamda farklıdırlar.
Consumer-Driven Contract (CDC) Nedir?
Consumer-Driven Contract (CDC), hizmetlerin uyumluluğunu, tüketicilerin belirlediği gereksinimlere göre test eden bir yöntemdir. Buradaki “contract” (sözleşme), tüketici ile sağlayıcı arasında veri aktarım formatı konusunda yapılan bir anlaşmayı ifade eder. CDC testleri, hem tüketici hem de sağlayıcı tarafından gerçekleştirilerek bu sözleşmenin sürekli olarak yerine getirilip getirilmediği kontrol edilir.
CDC testleri için kullanılan popüler bir araç, açık kaynaklı bir framework olan PACT’tir. Bu araç, tüketici odaklı testlerin uygulanmasını kolaylaştırır ve sistemlerin uyumunu güvence altına alır.
@DirtiesContext
Spring Framework’te testlerde kullanılan bir anotasyondur. Testin bağlamı (“context”) kirlenmişse, bu anotasyon test sonrası Spring test konteynerinin yeniden başlatılmasını sağlar. Bu, diğer testlerin etkilenmesini önlemek için temiz bir bağlam gereksinimi olduğunda kullanılır.
Karşıma çıktıkça buraya eklemeye devam edicem…
Şimdilik bu kadar. 😊