Projects · Platform
EventFlow

EventFlow, birden fazla masası olan bir etkinlik şirketinin arka ofisidir. İstemci on porta konuşmaz. Bir ağ geçidine konuşur. Bunun ardında kimlik, mekân, envanter, CRM, operasyon, oturma, finans, bildirim, entegrasyon ve dosya ayrı Express servisleridir, her birinin kendi Postgres veritabanı vardır.
Çözümler
Tek ağ geçidi, on alan
Çağrılar /api/auth, /api/venues, /api/inventory, /api/crm, /api/operations, /api/seating, /api/finance, /api/notifications, /api/integrations ve /api/files adreslerine gider. Ağ geçidi onları yönlendirir. Bir oturma değişikliği finans servisini yayına almaz.
Tek bir yönetim değil, üç panel
Yönetim arayüzü, müşteri portalı ve tedarikçi portalı ayrı ön yüzlerdir. Personel, bilet alanlar ve satıcılar bir gezintiyi paylaşmaz.
Servis başına bir veritabanı
Envanter oturmayla gelişigüzel birleşemez. İki alanın birbirinden haberi olması gerekiyorsa bu ortak bir tabloyla değil, hat üzerinden olur.
Süreç
01
Kenarda giriş
Tarayıcı yönetime, müşteri portalına ya da tedarikçi portalına gelir. Bu uygulamalar /api’yi ağ geçidine vekil eder. JWT_SECRET, geliştirme süreçleri başlamadan önce zorunludur.
02
Ağ geçidi bir servis seçer
Yol öneki Auth, Venue, Inventory, CRM, Operations, Seating, Finance, Notification, Integration ya da File seçer. Her biri geliştirmede kendi portunu dinler.
03
Durum o serviste kalır
Postgres servis başınadır. Redis, RabbitMQ ve MinIO ortak altyapıdır: önbellek, mesajlar ve dosyalar. Bir dosya yüklemesi oturma veritabanına inmez.
04
Tek bir alanı çıkar
Turbo bir alt kümeyi çalıştırabilir, örneğin diğer sekiz servisi açmadan ağ geçidini, kimliği ve yönetimi.
Teknoloji
Servisler ve panellerden bir Turborepo
Node 22. Vite üzerinde React paneller. Express servisler. Yönetim /api’yi 8080 portuna vekil eder. Müşteri portalı ve tedarikçi portalı yanında durur.
Yalnızca altyapı için Docker
Compose Postgres, Redis, RabbitMQ ve MinIO’yu ayağa kaldırır. Postgres, 5432’deki yerel kurulumla çarpışmasın diye 5434’te yayımlanır. Bir üretim compose dosyası isteğe bağlı bir Nginx profili ekler.
Bölünmenin ürün olmasının nedeni
Bir etkinlik şirketinin zaten bir mekân masası, bir oturma masası ve bir finans masası vardır. Yazılım bu sınırı tek bir şemanın ve tek bir yayının içine gizlemek yerine onu izler.
- React
- Vite
- Express
- PostgreSQL
- Redis
- RabbitMQ
- MinIO
- Turbo