Konu başlangıcı
Geçen hafta freelance bir iş için bırakılan eski bir projeyi devraldım, kodu incelerken sinirden ekrana boş boş baktım resmen.
Toplamda 4 tane tablosu olan, günlük aktif kullanıcısı belki 300-500'ü geçmeyen bildiğimiz basit bir randevu/sipariş sistemi. Ama mimariye bakıyorsun: auth-service, notification-service, order-service, payment-service diye ayırmışlar. Araya RabbitMQ sıkıştırmışlar, Docker compose dosyası uzay mekiği konfigürasyonu gibi.
Basit bir sipariş kaydı atılacak; event fırlatılıyor, o ona haber veriyor, diğeri DB'ye yazarken patlıyor, transaction yarım kalıyor... Ortada ne doğru düzgün bir log mekanizması var ne de distributed tracing. Debug yapmaya çalışırken 6 tane terminal penceresi arasında kayboldum. Bir endpoint'in nereye gittiğini çözmek yarım gün sürüyor.
Netflix ya da Trendyol değilsen, arkanda 50 kişilik devops ve platform ekibi yoksa bu fanteziye girmek projeyi bilerek çöpe atmak değil de nedir? Düzgün klasörlenmiş, sınırları iyi çizilmiş bir Modular Monolith yazıp 10 dolarlık VPS'e atsan canavar gibi çalışacak işi alıp kasten içinden çıkılmaz hale getiriyoruz.
CV'ye "Microservices, Event-Driven Architecture kullandım" yazacağız diye müşterinin/şirketin vaktini ve parasını yakmak bana artık mesleki bir hastalık gibi gelmeye başladı. Varsa aranızda 2-3 kişilik ekiple 10 tane servisi yönetmeye çalışıp saç baş yolan, yalnız olmadığımı bileyim.
Toplamda 4 tane tablosu olan, günlük aktif kullanıcısı belki 300-500'ü geçmeyen bildiğimiz basit bir randevu/sipariş sistemi. Ama mimariye bakıyorsun: auth-service, notification-service, order-service, payment-service diye ayırmışlar. Araya RabbitMQ sıkıştırmışlar, Docker compose dosyası uzay mekiği konfigürasyonu gibi.
Basit bir sipariş kaydı atılacak; event fırlatılıyor, o ona haber veriyor, diğeri DB'ye yazarken patlıyor, transaction yarım kalıyor... Ortada ne doğru düzgün bir log mekanizması var ne de distributed tracing. Debug yapmaya çalışırken 6 tane terminal penceresi arasında kayboldum. Bir endpoint'in nereye gittiğini çözmek yarım gün sürüyor.
Netflix ya da Trendyol değilsen, arkanda 50 kişilik devops ve platform ekibi yoksa bu fanteziye girmek projeyi bilerek çöpe atmak değil de nedir? Düzgün klasörlenmiş, sınırları iyi çizilmiş bir Modular Monolith yazıp 10 dolarlık VPS'e atsan canavar gibi çalışacak işi alıp kasten içinden çıkılmaz hale getiriyoruz.
CV'ye "Microservices, Event-Driven Architecture kullandım" yazacağız diye müşterinin/şirketin vaktini ve parasını yakmak bana artık mesleki bir hastalık gibi gelmeye başladı. Varsa aranızda 2-3 kişilik ekiple 10 tane servisi yönetmeye çalışıp saç baş yolan, yalnız olmadığımı bileyim.
😂
1