Skip to content

Platform vs Horizontal vs Vertical

This document explains the separation of concerns that keeps the ecosystem coherent: a thin set of reusable platform capabilities, a layer of horizontal business applications, and industry verticals that compose both. It is written for architects and product leads deciding where a new capability belongs.

The Three Layers

flowchart TB
    V[Verticals - Banking, Insurance, Healthcare, Logistics ...]
    H[Horizontal SaaS - CRM, Sales, Marketing, Commerce, Finance Ops]
    P[Core Platform - Tenant, Identity, Config, Billing, Notifications, Audit, Data/AI, API, Infra, Factory]
    V --> H
    V --> P
    H --> P
Hold "Alt" / "Option" to enable pan & zoom

Core Platform (categories 1-10)

Reusable capabilities every product needs. Built once, consumed by all. Examples: identity, configuration, billing, notifications, audit, data/AI, API/integration, infrastructure, developer factory. These are the highest-priority investments (Tier 0-1).

Horizontal SaaS (categories 11-14, 23)

Cross-industry business applications - CRM, sales/RevOps, marketing, commerce, finance operations. They consume platform capabilities and are themselves reused by verticals.

Verticals (categories 15-22, 24-26)

Industry-specific solutions. The key rule: verticals compose, they do not re-implement. A banking or insurance product reuses identity, billing, notifications, audit, documents, and workflow from the platform, and CRM/support from horizontals, adding only the genuinely industry-specific contexts (e.g., underwriting, claims, KYC).

Decision Rule: Where Does A Capability Belong?

Question If yes
Will 3+ products across industries need it? Core platform
Is it a business app reused across industries? Horizontal SaaS
Is it specific to one industry's domain language and regulation? Vertical
Is it just a packaging of existing capabilities for an industry? Solution pack

Why This Matters

  • Prevents re-implementing identity/billing/notifications inside every vertical.
  • Keeps the count of independently deployed services small (see ADR-0011).
  • Makes verticals fast to assemble once the platform exists (see ADR-0013).