İçeriğe geç
KS
Projelere dön

Backend / Gerçek zamanlı

Gerçek Zamanlı Mesajlaşma Platformu

FastAPI, WebSocket ve PostgreSQL ile geliştirilmiş gerçek zamanlı bir mesajlaşma backend'i.

  • Python 3.13
  • FastAPI
  • WebSocket
  • PostgreSQL
  • SQLAlchemy
  • Alembic
  • JWT
  • Docker
  • Nginx
  • Sentry
  • pytest
  • pytest-asyncio

Mimari özet

Gerçek Zamanlı Mesajlaşma Platformu için mimari diyagram

Mesajlaşma İstemcileri

Nginx

FastAPI + WebSocket

PostgreSQL

Sentry

Genel bakış

Bu mesajlaşma backend'i canlı teslimat için FastAPI ve WebSocket kullanıyor; kaynak gerçek PostgreSQL. Kimlik doğrulama JWT tabanlı; arkadaş, engelleme, yazıyor, okundu ve çevrimiçi durumu akışları Alembic migrasyonlarıyla asenkron bir veri katmanının üzerinde duruyor.

Teknoloji yığını

  • Python 3.13
  • FastAPI
  • WebSocket
  • PostgreSQL
  • SQLAlchemy
  • Alembic
  • JWT
  • Docker
  • Nginx
  • Sentry
  • pytest
  • pytest-asyncio

Teknik uygulama

  • Gerçek zamanlı WebSocket mesajlaşma.
  • Asenkron PostgreSQL veri katmanı.
  • Alembic ile veritabanı migrasyonları.
  • JWT kimlik doğrulama.
  • Arkadaş / engelleme akışları.
  • Mesaj silme.
  • Yazıyor / okundu göstergeleri.
  • Çevrimiçi / çevrimdışı durum takibi.
  • Docker + Nginx dağıtım yapısı.
  • Sentry ile hata izleme.
  • Asenkron testler.

Temel mühendislik kararları

  • Canlı olaylar için WebSocket kullanmak ve yeniden bağlanınca konuşma durumunun geri gelebilmesi için mesaj geçmişini PostgreSQL'de tutmak.
  • Bağlantı yönetiminin FastAPI'nin asenkron çalışma zamanıyla uyumlu kalması için veri katmanını asenkron SQLAlchemy ile kurmak.
  • Çevrimiçi durumu, yazıyor ve okundu bilgilerini yalnızca mesaj trafiğinden çıkarmak yerine birinci sınıf olaylar olarak izlemek.
  • TLS ve reverse proxy kaygılarının Python sürecinin dışında kalması için konteynerize uygulamanın önüne Nginx koymak.
  • Çalışma zamanı hatalarını Sentry'ye göndermek ve asenkron yolları pytest-asyncio ile örtmek.

Faydalı bir şey inşa edelim.

Düşünülmüş yazılım projeleri, backend zorlukları ve ürün odaklı mühendislik işleriyle her zaman ilgileniyorum.