Core-first architecture
PayCal Core में canonical domain और controller logic शामिल है: calculations, validation, permissions, lifecycle policy, और shared API contracts।
Core जानबूझकर extension-agnostic रहता है। Integration points bridge contracts के माध्यम से अलग किए गए हैं ताकि core services को runtime-specific packages से स्वतंत्र रूप से test किया जा सके।
इस repository में शामिल basic extensions
यह repository basic extension implementations ships करता है जो extension seams के लिए default behavior देते हैं। ये public reference packages और self-hosted deployments के लिए safe defaults की तरह काम करते हैं।
- billing-provider: baseline billing capability hooks और mode selection
- earnings-ytd: baseline YTD rendering और earnings hook points
- organization-signals: baseline organization signal hooks
Third-party extension model
इस repository का उपयोग करने वाले third parties अपने खुद के extension packages बना और maintain कर सकते हैं। अपेक्षित मॉडल यह है:
- जहाँ संभव हो core logic को बिना बदले रखें
- Custom behavior को extension packages में लागू करें
- Documented extension bootstrap और hook seams के माध्यम से custom packages bind करें
- Core contracts को preserve करें ताकि upstream upgrades manageable रहें
इससे competitive और vertical-specific deployments संभव होते हैं बिना core domain code के लंबे forks के लिए मजबूर किए।
Canonical paycal.app differentiation
Canonical https://paycal.app platform उसी core और basic extension paradigm के ऊपर private extension variants चलाता है।
ये private variants PayCal-operated environments के लिए deliberate product differentiation layer हैं। ये workflows, capability behavior, और UI-specific integrations को tune कर सकते हैं जबकि same core architecture के साथ compatible रहते हैं।
- Core logic shared और auditable रहता है
- Public/basic extensions repository में उपलब्ध रहते हैं
- Private extensions canonical platform differentiation प्रदान करते हैं
Transparency commitments
- Core contracts extension seams पर documented और tested हैं
- Bridge boundaries explicit हैं ताकि coupling discoverable रहे
- Extension behavior core services को destabilize किए बिना evolve कर सकता है
- Self-hosted adopters alternative extension strategies बना सकते हैं