Uzantı paradigması

PayCal, çekirdek iş mantığının sabit kalacağı ve uzantı katmanlarının farklı dağıtımlar ile ürün stratejileri için özellikleri uyarlayabileceği şekilde tasarlanmıştır.

Core first architecture

PayCal Core kanonik domain ve controller mantığını içerir: hesaplamalar, doğrulama, izinler, yaşam döngüsü politikası ve paylaşılan API sözleşmeleri.

Core bilinçli olarak extension-agnostic kalır. Entegrasyon noktaları bridge contracts ile izole edilir; böylece core services runtime-specific paketlerden bağımsız test edilebilir.

Bu repository’ye dahil basic extensions

Bu repository, extension seams için default davranış sağlayan basic extension implementations gönderir. Bunlar public reference packages ve self-hosted deployments için güvenli varsayılanlar gibi davranır.

  • billing-provider: temel billing capability hooks ve mode selection
  • earnings-ytd: temel YTD rendering ve earnings hook noktaları
  • organization-signals: temel organization signal hooks

Third-party extension modeli

Bu repository’yi kullanan third party’ler kendi extension package’lerini oluşturup sürdürebilir. Beklenen model şudur:

  1. Mümkün olduğunca core logic’i değiştirmeyin
  2. Custom behavior’ı extension package’lerde uygulayın
  3. Custom package’leri documented extension bootstrap ve hook seams üzerinden bağlayın
  4. Upstream upgrades yönetilebilir kalsın diye core contracts’ı koruyun

Bu, core domain code üzerinde uzun süreli fork zorunluluğu olmadan rekabetçi ve dikey-spesifik deployments’a izin verir.

Canonical paycal.app ayrışması

Canonical https://paycal.app platformu, aynı core ve basic extension paradigması üzerinde private extension variants çalıştırır.

Bu private variants, PayCal tarafından işletilen ortamlar için kasıtlı bir ürün ayrışma katmanıdır. Aynı core architecture ile uyumluluğu korurken workflow’ları, capability davranışını ve UI-specific integrations’ı ayarlayabilirler.

  • Core logic ortak ve denetlenebilir kalır
  • Public/basic extensions repository’de erişilebilir kalır
  • Private extensions canonical platform differentiation sağlar

Şeffaflık taahhütleri

  • Core contracts extension seams’te belgelenir ve test edilir
  • Bridge boundaries açıktır, böylece coupling keşfedilebilir kalır
  • Extension behavior core services’ı destabilize etmeden gelişebilir
  • Self-hosted adopters alternatif extension stratejileri kurmakta özgürdür