Sosyal medya sitesi için hangi teknolojiler kullanılmalıdır?

Neye göre avantaj?
Örnek sitelere bak hangi teknolojiler kullanılıyor kendin gör.
Chrome wappalyzer eklentisi ile sitenin hangi teknolojileri kullandığını görebilirsin.

Tamamen tercih meselesi.

Benim tercihim; React & Nodejs.
 
Başlangıç için veri tabanı MongoDB olabilir. Hem çok esnek hem de özellik bakımından zengin. İleride proje büyür managed olarak düşünürseniz MongoDB Atlas muadillerine göre bayağı uygun.

MongoDB kullanırsanız başlangıç için ayrı bir mesajlaşma sistemine ihtiyacınız yok. Capped Collection oluşturup ona tail atarak yeni eklenen kayıtları okuyabilirsiniz. Bu sizi Kafka, RabbitMQ gibi ayrı bir mesajlaşma sistemi kurup yönetme yükünden kurtarır.

Gerçek zamanlı veri tabanı alternatifi bir şey düşünürseniz, oplog üzerinden koleksiyon bazlı değişiklikleri takip edebilirsiniz. Sırf bu iş için özel veritabanları var fakat mongo da bu ek özellik olarak gayet iyi çalışıyor. Ek bir veri tabanı daha kurmaktan kurtulursunuz.

Mongo 5 ile birlikte dahili timeseries özelliği geldi. Analytics amaçlı da kullanabilirsiniz. Prometheus kurup yönetme yükünden kurtulabilirsiniz.

Kişisel olarak MySQL, postgres, couchbase, redis kullandım. MongoDB en esnek, en yönetilebilir olanı gibi geldi bana. İlişkisel veritabanlarında canlıda tablo alter etmek sorun olduğu için onlara hiç bulaşmadım bile büyük veri olan projelerde. Aslında doğru olan ilişkisel veri için ilişkisel veri tabanı kullanmak ama çok ciddi bir öğrenme süreci gerekiyor. Canlıdaki bir ilişkisel veritabanına müdehale etmek de bence yürek ister. Doküman tabanlı mongo gibi nosql veritabanlarında herkes oraya bir şey atıyor, gelen oradan işine yarayanı alıyor kullanıyor, sistematik bir şey yok, abur cubur dolduruyorsunuz, hiç de karışmıyor :D.

Şaka bir yana mongoda ilişkisel özellikler de var. Çok güçlü sorgu altyapısı var. Çoğu nosql veritabanında olmayan join müadili işlemlerde var. Gayet de performanslı çalışıyor.

MongoDB Türkiye çalışanı değilim :D . Kişisel tecrübelerimdir.

Dil olarak istediğinizi kullanabilirsiniz. Sosyal medya gibi sistemlerde önemli olan verinin nasıl tutulduğudur. Geri kalan her özellik için ayrı bir servis yazacaksınız. Bunların ayrı ekibi olacak vs. Her ekip hakim olduğu dili kullanabilir. Şu an trend nodejs'den yana. Bir çok araç için hazır npm paketi olması ve javascript kullandığından dolayı daha baştan asenkron olarak tasarlanması büyük avantaj. Javascript web'in ingilizcesi gibi bir şey zaten. İster frontend ister backend uğraşın bir şekilde bulaşmanız gerekiyor.
 

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı