PrepZone Logo
PrepZone

Conway's Law and Team Topology

Architecture follows communication paths — align ShardPay service boundaries with team ownership.

Why this matters

  • Staff+ architects own org design as much as box diagrams — bad team topology produces bad distributed systems.
  • Platform teams, stream-aligned teams, and enabling teams (Team Topologies) determine delivery speed and operational quality.
  • ShardPay restructured from "backend team" to stream-aligned ledger/fraud/platform teams in 2023 — microservice boundaries followed within two quarters.
  • Interviewers probe team topology because systems that ignore Conway accumulate integration pain no amount of tooling fixes.
Org structure
Ledger team
Fraud team
Settlement team
Architecture
Ledger service
Fraud service
Settlement stream
System architecture mirrors communication structure — align team boundaries with service boundaries.

Conway's law in practice

Melvin Conway observed (1968) that organizations produce designs that copy their communication structures. If ledger and fraud teams talk daily through a shared Slack channel, their services will merge logic informally. If they interact only via quarterly API reviews, boundaries stay strict — but integrations become brittle without investment.

ShardPay's pre-2023 structure had one "Payments Backend" team owning gateway, ledger, fraud, and notifications as a modular monolith. Deploys were weekly and coordinated. Conway predicted: the architecture was a monolith because the team was one unit.

Post-restructure, four stream-aligned teams emerged. Within 6 months, the monolith split along the same seams the teams already owned informally — not because leadership drew microservice boxes, but because ownership drove extraction.

Key points

  • Conway's law — architecture reflects communication paths. ShardPay's ledger microservice boundary appeared exactly where the ledger team stopped talking daily to the fraud team.
  • Inverse Conway maneuver — deliberately structure teams to produce desired architecture. ShardPay created a platform team before extracting shared K8s/observability — preventing each stream team from building incompatible infra.
  • Stream-aligned team — owns a business capability end-to-end (ledger, fraud, merchant API). ShardPay's ledger team owns shards, orchestrator, reconciliation, and ledger on-call — full vertical slice.
  • Platform team — provides internal products (CI/CD, K8s abstractions, observability) consumed by stream teams. ShardPay platform team SLO: stream team can deploy in under 15 minutes without platform ticket.

Team Topologies at ShardPay

Team Topologies (Skelton & Pais) defines four team types. ShardPay maps cleanly — with one enabling team for security compliance coaching.

Stream-aligned teams

TeamOwnsShardPay scope
LedgerShards, orchestrator, sagasTransfer correctness
FraudScoring models, rules engineRisk decisions
MerchantAPI, profiles, webhooksMerchant experience
SettlementOutbox, network files, reconMoney movement to banks
  • Ledger

    OwnsShards, orchestrator, sagas
    ShardPay scopeTransfer correctness
  • Fraud

    OwnsScoring models, rules engine
    ShardPay scopeRisk decisions
  • Merchant

    OwnsAPI, profiles, webhooks
    ShardPay scopeMerchant experience
  • Settlement

    OwnsOutbox, network files, recon
    ShardPay scopeMoney movement to banks

ShardPay stream-aligned teams

Each team has on-call rotation for their services, own error budget, and deploy independently via platform pipelines.

Platform team

Provides Golden Path templates: Spring Boot starter with OTel, Resilience4j, idempotency middleware pre-configured. Stream teams adopt voluntarily — forced adoption failed in 2022; voluntary Golden Path succeeded at 95% uptake by 2025.

Enabling team

Security and compliance coaches — not permanent owners. They run 6-week engagements helping ledger team implement PCI audit requirements, then exit. Permanent ownership stays with stream team.

Java
// ShardPay Golden Path starter — platform team ships, stream teams consume
@AutoConfiguration
public class ShardPayPlatformDefaults {
    @Bean
    public OtlpGrpcSpanExporter otelExporter(PlatformConfig config) {
        return OtlpGrpcSpanExporter.builder()
            .setEndpoint(config.otelEndpoint())
            .build();
    }
    @Bean
    public IdempotencyFilter idempotencyFilter(IdempotencyStore store) {
        return new IdempotencyFilter(store, Duration.ofHours(24));
    }
}

Aligning boundaries with communication

Conway is a constraint, not an excuse. Use it to decide where services split and where teams merge.

Walkthrough: should fraud scoring merge into ledger?

Proposal: embed fraud checks inside ledger service to reduce latency.

Conway analysis: fraud team and ledger team have different release cadences (fraud deploys daily for rule updates; ledger deploys weekly with extra review). Different skills (ML engineers vs database engineers). Communication is API-contract-level, not pair-programming.

Decision: keep separate services. Accept 8ms network hop. Invest in contract tests and shared trace context instead of merging teams or services.

Outcome: fraud team shipped new ML model without ledger deploy — 94ms → 61ms fraud latency improvement independent of ledger release cycle.

Key points

  • Cognitive load limit — teams should own a domain they can hold in working memory. ShardPay caps stream team scope at ~8 services; beyond that, sub-teams form (ledger split into orchestrator team and shard team in 2025).
  • API as team boundary — strict APIs where communication is infrequent; shared libraries where teams pair daily. ShardPay forbids shared database tables across teams — only API/event contracts.
  • Platform thinnest viable — platform team builds abstractions stream teams request, not speculative frameworks. ShardPay platform backlog is 80% stream-team-requested items.
  • Re-org triggers architecture change — merging two teams eventually merges their services. ShardPay documents this explicitly in ADRs when reorgs happen so architecture does not drift silently.

Quick recall

Everything you need if you only revisit this box.

  1. Architecture mirrors communication — align teams to desired boundaries (inverse Conway).
  2. Stream-aligned teams own vertical slices; platform teams provide Golden Path infra.
  3. Split services where release cadence, skills, and communication patterns differ.

Test yourself

Answer these before moving on — recall is what makes it stick.