Context

Operating Constraints

Options Considered

Explicit Rejections

Consequences

Misuse Boundary

Context

The platform processes financial transactions requiring absolute data consistency and auditability. Future scaling was uncertain, with potential growth to 100x current volume. The decision needed to balance immediate operational requirements with long-term adaptability under uncertainty in technical debt accumulation and decision quality under uncertainty, guided by systematic constraint analysis.

Constraints

These guardrails establish the immovable boundaries within which the decision must operate:

These constraints function as guardrails, not suggestions - violating any would make the system unfit for its financial services purpose.

Options Considered

  1. PostgreSQL with custom sharding: Maintains full ACID compliance, proven reliability, but requires expertise in distributed systems
  2. CockroachDB distributed SQL: Built-in distribution and consistency, but newer technology with less operational experience
  3. Established RDBMS with read replicas: Simple to operate but limited scaling potential
  4. NoSQL document store: High scalability but sacrifices consistency guarantees

Rejected Options

The NoSQL document store was explicitly rejected because eventual consistency violates the fundamental requirement for financial transaction integrity. While it offered superior scaling characteristics, the risk of inconsistent transaction states was unacceptable.

Rejection of Generic Patterns: This decision explicitly rejects the common pattern of adopting NoSQL for high-scale applications. Generic approaches fail when applied without analyzing specific constraint interactions - what works for social media platforms with loose consistency requirements fails catastrophically in financial systems requiring absolute data integrity.

Consequences

Choosing PostgreSQL with custom sharding ensures transaction integrity and auditability but increases operational complexity and requires specialized database administration skills. This decision trades short-term simplicity for long-term reliability, with the consequence that scaling beyond initial projections will require additional engineering investment rather than automatic distribution. This reflects the fundamental impossibility of zero-downtime schema migrations in strongly consistent systems.

Temporal Limitation: These consequence predictions assume stable system architecture and requirements. In complex distributed systems, second-order effects and the “butterfly effect” can invalidate long-term predictions within 6 months, requiring continuous reassessment rather than static planning.