İlk girişimimde, henüz tek bir müşterimiz yokken yedi servisli bir mimari kurmuştuk. Her biri kendi veritabanına, kendi deploy hattına sahipti. Bir yıl sonra ürünü değil, altyapıyı geliştiriyorduk.

Karmaşıklık bir borçtur

Her yeni bileşen, ödemeye devam edeceğiniz bir faiz gibidir: izlenmesi, güncellenmesi, bozulduğunda anlaşılması gerekir. Küçük bir ekipte bu faiz, ürün geliştirmeye ayrılan zamanın tamamını yiyebilir.

Başlangıçta

  • Tek uygulama

  • Tek veritabanı

  • Basit bir kuyruk (gerekirse)

Gerçekten gerekince

  • Ölçülmüş darboğaza göre ayrıştırma

  • Önbellek

  • Ayrı servisler

Bir örnek

Çoğu zaman ihtiyacımız olan şey, karmaşık bir olay sistemi değil, düzgün yazılmış bir fonksiyondur:

export async function publish(articleId: string) {
  const article = await db.articles.get(articleId);
  if (article.status !== "approved") throw new Error("Henüz onaylanmadı");
  await db.articles.update(articleId, { status: "published", publishedAt: new Date() });
}

Sıkıcı teknoloji seçin. Heyecanı ürününüze saklayın.