• Home
  • BVSSH
  • Engineering Enablement
  • Playbooks
  • Frameworks
  • Good Reads
Search

What are you looking for?

Practice : API-first Design

Purpose and Strategic Importance

API-first Design is a development approach where APIs are treated as first-class products, defined and agreed upon before any implementation begins. This ensures strong contracts, cross-team alignment, and accelerates delivery by enabling parallel development across producers and consumers.

It improves quality, encourages reusability, and reduces integration risk by making APIs the backbone of system interoperability - not an afterthought.


Description of the Practice

  • APIs are designed and documented collaboratively before development starts.
  • Contracts are defined using tools like OpenAPI, AsyncAPI, or GraphQL schemas.
  • Mock servers and SDKs can be generated early for testing and integration.
  • API definitions are version-controlled and reviewed like code.
  • APIs are treated as stable interfaces - well-documented, discoverable, and backward-compatible.

How to Practise It (Playbook)

1. Getting Started

  • Use OpenAPI or GraphQL to define your service contract before implementation.
  • Host design-first sessions with stakeholders to align on data models and operations.
  • Validate the API spec with mock servers and consumer feedback before coding begins.
  • Publish the spec in an accessible registry or API portal.

2. Scaling and Maturing

  • Automate linting, style checks, and breaking change detection for API specs.
  • Generate documentation, mocks, and SDKs from the contract.
  • Integrate contract testing and schema validation into your CI/CD pipelines.
  • Use an internal API gateway or catalogue to enable discovery and governance.
  • Apply versioning and deprecation policies to support smooth evolution.

3. Team Behaviours to Encourage

  • Treat API design as a shared activity between engineering, product, and consumers.
  • Invest time upfront in design reviews to reduce rework later.
  • Align APIs to domain language and business use cases.
  • Prefer explicit contracts and transparency over tribal knowledge and handoffs.

4. Watch Out For…

  • Designing APIs in isolation without consumer feedback.
  • Contracts that are overly abstract or vague - be specific and meaningful.
  • Specs that drift from implementation - ensure tests and reviews keep them aligned.
  • Avoiding versioning or breaking compatibility without process or warning.

5. Signals of Success

  • Teams use APIs confidently, with minimal handover or friction.
  • Consumer and provider development happens in parallel.
  • API definitions are central artefacts in planning, development, and testing.
  • Systems integrate cleanly and reliably across service boundaries.
  • API quality improves through design feedback and automated validation.
Associated Standards
  • Domains are integrated through stable, loosely coupled interfaces
  • Systems are architected to minimise the cost of change

Technical debt is like junk food - easy now, painful later.

Awesome Blogs
  • LinkedIn Engineering
  • Github Engineering
  • Uber Engineering
  • Code as Craft
  • Medium.engineering