Core Principles
Single Source of Truth
All packages, applications, and tooling configurations live in one repository. You make changes once, run one CI pipeline, and ship consistent versions across every consumer.
Typed Contracts First
Shared interfaces and data shapes are defined in
@figentra/contracts before any implementation is written. Types become the API boundary between packages, eliminating runtime surprises.Layered Package Design
Packages are organized in dependency layers — utilities and contracts at the base, services and health infrastructure above. Higher layers depend on lower ones, never the reverse.
Operational Readiness
Health checks, structured error handling, and runbook hooks are built into the framework from the start. You don’t bolt observability on later — it’s part of the package layer contract.
Package Layer Diagram
The following diagram shows how Figentra packages stack into dependency layers. Application services sit at the top and consume everything below them; the foundational packages at the base have no internal dependencies on higher layers.Technology Stack
Figentra standardises on the following tools across every workspace:Next Steps
Dig deeper into how these principles translate into a concrete directory layout and the reasoning behind each technology choice:- Monorepo Structure — recommended folder layout and workspace conventions
- Architecture Decisions — the ADRs that explain every major design choice