Skip to content
Tiana_ edited this page May 30, 2026 · 1 revision

Vision

What FinCore Engine is, what it isn't, and why it exists.


In one sentence

FinCore Engine is the open-source fintech core for the JVM ecosystem: double-entry ledger, payment orchestration, KYC/AML compliance, and a JSON-DSL decision engine - all production-grade from the first commit.


In three sentences

The JVM market is underserved by open fintech infrastructure. Most teams either glue together Drools + Spring Batch + handwritten ledger code (slow, error-prone) or buy proprietary SaaS at $500K/year (vendor lock, opaque). FinCore Engine offers a third path: open-source infrastructure with rigorous correctness, modern DX, and a license (BSL 1.1) that prevents hyperscaler-fork commodification.


What FinCore Engine is

  • A modular monolith today, designed for clean extraction to microservices later
  • A production-grade ledger with double-entry invariants enforced at three layers (domain, service, database)
  • A payment orchestration platform with idempotency, outbox pattern, retry topology, webhook delivery
  • A compliance framework for KYC orchestration, AML rule evaluation, case management
  • A JSON-DSL decision engine as a standalone library that can replace Drools in modern Kotlin/Spring teams
  • A sandbox that gives developers a working fintech in 30 seconds via docker compose up
  • An OSS project licensed BSL 1.1 with a 4-year change-date conversion to Apache 2.0
  • A JVM-first offering in a market dominated by Go-based alternatives

What FinCore Engine is not

  • Not a TigerBeetle competitor. TigerBeetle is a low-level financial OLTP database with formally verified invariants, ~1000× the raw throughput of Postgres for ledger workloads. We're an application layer above. We use Postgres by default; TigerBeetle adapter ships Y1 H2 as pluggable storage. Use Postgres for 99% of cases, TigerBeetle for the 1%.
  • Not an ML toolkit. Risk scoring, anomaly detection, fraud detection - these are advisory inputs to deterministic rule evaluation, never authoritative. Plug-in interfaces (RiskScorer, AnomalyDetector, AmlCopilot) live in OSS; trained models do not.
  • Not a banking license. It does not replace your sponsor bank, your KYC provider, your AML data feed, or your regulatory reporting obligations. It plugs into them.
  • Not a multi-tenant SaaS. Each adopter handles tenancy at the deployment level. Naive multi-tenancy in fintech invites cross-tenant data leaks; we won't ship that until we have explicit, regulated answers.
  • Not a complete neobank stack. Cards, mobile apps, statements - those are adopter responsibilities. We ship the financial backbone; the front end is yours.
  • Not a hosted service. No "FinCore Cloud" in 2026. Self-hosted only.

Why this exists

The macro reason

Open-source fintech infrastructure has matured in Go (TigerBeetle, Formance, Blnk, Midaz) and stagnated in JVM (Adorsys Ledgers - last meaningful commit 2022). The JVM market - banks, regulated fintechs, JVM-shop neobanks - has no modern OSS option. They either rebuild it themselves (slow, error-prone) or buy SaaS (locked-in, expensive).

FinCore Engine fills that gap.

The project rationale

FinCore Engine exists to:

  1. Provide a high-quality, readable body of work the JVM/fintech engineering community can evaluate and adopt
  2. Provide infrastructure that downstream verticals can build on top of
  3. Test the BSL 1.1 anti-fork model in a serious project

Quality matters more than adoption metrics in Y1.


Architectural commitments

These are the principles that drive every decision:

  1. Correctness first, performance second. Money-handling code that's "fast enough" but loses 1 in 10⁶ transactions is unfit for purpose. We pay measurable latency cost (DB triggers, transaction boundaries, optimistic locking) for invariants that hold mathematically.
  2. Boring tech in the hot path. PostgreSQL, Spring Boot, Kotlin, Kafka API. None of these are "innovative" - that's the point. Innovation is in what we build on top (decision engine DSL, outbox correctness, plug-in architecture), not the foundation.
  3. Extraction-readiness over premature distribution. Modular monolith with clean boundaries, ready to extract per-service when adoption demands it.
  4. Audit-by-default. Every state change is observable, every decision is replayable, every transaction is immutable.
  5. Pluggable boundaries. External systems (banks, KYC, ML, sanctions, LLMs) are interfaces with sandbox implementations in OSS. Real implementations are adopter business.

Operating principles

  • No marketing budget. Quality + content + transparency is the strategy.
  • No funding. Bootstrapped on weekends and evenings. Sponsorship via GitHub Sponsors when adoption warrants.
  • No feature creep. Strict scope per release. Saying "no" is part of the job.
  • No coupling to private vertical business. The private vertical lives in a separate repo. The OSS has zero opinions about your domain.
  • No proprietary moat in OSS. ML models, vendor adapters, customer data - never in the public repo.
  • Building in public. Roadmap, retrospectives, decision rationale, performance benchmarks - all public.

Audience

Primary

  • Senior engineers building fintech apps on JVM (banks, embedded finance, B2B PayTech, BNPL)
  • JVM-shop teams that won't rewrite to Go for a fintech core
  • Stripe-alternatives in earlier markets

Secondary

  • Banks/fintechs with legacy core wanting incremental modernization (decision engine module as Drools replacement)
  • Engineering leaders evaluating reference architectures
  • Conference attendees, blog readers, recruiters

Tertiary

  • Private verticals built on top of the OSS

What success looks like (Y1)

Metric Target Stretch
GitHub stars 1,500 3,000
Public adopters mentioned 1 3
Conference talks accepted 1 (KotlinConf) 2 (+ SpringOne)
Blog posts published 8 12
GitHub Sponsors $200/month $1,000/month

These are signals, not goals. The real goal is shipping a body of work the engineering community can evaluate and build on.


What failure looks like

  • Stars below 200 in Y1 → re-evaluate channels (HN, blog cadence, content)
  • No public adopter mentions → consider visibility tactics (case studies, free consulting hours)
  • Quality regression → all-hands fix sprint, no new features

We track these honestly in Risk-Register.


Long-term horizon (Y2-Y5)

  • v1.0 (Y2): production-stable, public SLOs, multi-region pattern
  • v1.5 (Y2-Y3): TigerBeetle adapter, regulatory reporting (SAR/STR), ISO 20022 native
  • v2.0 (Y3+): commercial layer (FinCore Cloud SaaS, enterprise support contracts) if community signals demand
  • 2030+: every release published before that point auto-converts to Apache 2.0; community can fully fork

How to engage

  • Try: git clone && docker compose up && demo.sh
  • Star if it's useful
  • Issue for bugs or questions (response within 48h Y1)
  • Discuss in GitHub Discussions
  • Contribute per CONTRIBUTING.md
  • Sponsor via GitHub Sponsors when revenue allows
  • Email for commercial inquiries: see SECURITY.md

Related

Clone this wiki locally