Markdown Editor

Team API Template (Team Topologies)

A team's public interface: type, mission, owned services, versioning, channels, ways of working, roadmap, interaction modes

Architecture & System DesignStandardTeam Topologies Team APICC BY-SA 4.0teamapi

How to use: Use it for every team so others know what it owns and how to work with it; fill it together in about an hour. Start with team type, mission and owned services. The main pitfall is letting it go stale, so review it each quarter.

Preview

Team API: [Team name]

A team's public interface for the rest of the organisation: who the team is, its type and mission, what it owns, how its software is versioned and documented, how to reach it, how it works, what it is working on and how it interacts with other teams. Adapted from the Team API template by Team Topologies (CC BY-SA 4.0). Replace every [bracketed] value and every row marked Example. Worked examples use a payments platform team.

FieldValue
DateYYYY-MM-DD
Team name[Payments Platform]
Team focus[Reliable payment acceptance and payouts for all product teams]
Team type[Stream-aligned / Enabling / Complicated subsystem / Platform]
Part of a platform?[Yes: Commerce Platform / No]
Team lead / contact[@team-lead]
Version[0.1]
Next reviewYYYY-MM-DD

1. Team identity and type

Team type: [Platform]

Why this type: [Example: We provide payment capabilities as self-service APIs to six stream-aligned teams. We do not own any customer-facing journey ourselves.]

Members and roles:

NameRoleAreas of depth
Example: @leadEngineering leadPayment provider integrations
Example: @pmProduct managerInternal developer experience
Example: @eng1EngineerLedger, reconciliation
[Name][Role][Areas]

2. Mission

[Example: Make it possible for any product team to take and refund payments safely in under a day of integration work, without needing to understand card schemes, providers or regulatory detail.]

Do other teams depend on us? [Yes: Checkout, Subscriptions, Marketplace, Mobile, Support tools, Finance reporting]

Service level expectations other teams have of us: [Example: Payment API availability 99.95% monthly; p95 latency 300 ms; breaking changes announced 6 months ahead; support response within 4 working hours.]

3. Services and products owned

ItemTypeConsumersTierCatalogue link
Example: payments-apiService (REST)Checkout, Subscriptions, MarketplaceTier 1[Link]
Example: ledger-serviceService (gRPC)Payments API, FinanceTier 1[Link]
Example: payments-sdk-jsLibraryWeb and mobile teamsTier 2[Link]
Example: settlement-reportsData productFinanceTier 2[Link]
[Item][Service / Library / Data product / Tool][Consumers][Tier][Link]

4. Versioning approach

Item typeVersioningDeprecation notice
Example: HTTP APIsMajor version in URL; additive changes released continuously6 months, Deprecation and Sunset headers
Example: LibrariesSemantic Versioning; changelog per releaseOne major version of overlap
Example: EventsSchema registry, backward-compatible evolution3 months for new major event type
[Item type][Approach][Notice]

5. Documentation and wiki

WhatWhere
Team home page[Link]
API reference and guides[Developer portal link]
Runbooks[Link]
Architecture decision records[Link]
Wiki search terms[Example: "payments", "refunds", "PSP", "ledger"]

6. Communication channels

PurposeChannelResponse expectation
Questions and helpExample: #payments-help chat channelWithin 4 working hours
Feature requestsExample: [Issue tracker] board "Payments intake"Triaged weekly on Tuesday
IncidentsExample: Page payments-oncall via [paging tool]15 minutes, 24/7
AnnouncementsExample: #payments-announce and monthly newslettern/a
Daily syncExample: 09:30 local time; visitors welcome with noticen/a

7. Ways of working and practices

PracticeHow we do it
Planning cadenceExample: Two-week iterations; quarterly roadmap review open to consumer teams
Intake and prioritisationExample: Requests scored on consumer impact and risk; decisions posted in intake board
Code contributions from other teamsExample: Welcome on payments-sdk-js; read CONTRIBUTING.md; pair with us for service changes
Engineering practicesExample: Trunk-based development, contract tests for every consumer, deploy many times a day
On-callExample: Weekly rotation of 6 engineers; follow-the-sun with [other site]

8. Current work and roadmap

HorizonItemImpact on other teams
NowExample: Add wallet payment methods to payments-apiCheckout can enable them with a config flag
Next quarterExample: Retire payments-api v1Subscriptions and Marketplace must migrate
LaterExample: Multi-currency payoutsMarketplace sellers outside the EU
Cross-team improvementExample: Shared contract-testing setup for all platform APIsOther platform teams can reuse it
[Horizon][Item][Impact]

9. Team interactions

9.1 Current interactions

TeamTeam focusInteraction modePurposeDuration
Example: CheckoutPurchase journeyX-as-a-serviceCheckout consumes payments-apiOngoing
Example: MarketplaceSeller onboarding and payoutsCollaborationDesign split payments for sellers togetherUntil YYYY-MM-DD (about 3 months)
Example: SRE EnablementReliability practicesFacilitating (they help us)Adopt SLO-based alerting6 weeks
[Team][Focus][Collaboration / X-as-a-service / Facilitating][Purpose][Duration]

9.2 Expected interactions in the near future

TeamTeam focusInteraction modePurposeExpected start
Example: SubscriptionsRecurring billingCollaboration, then X-as-a-serviceDesign retry logic for failed renewalsNext quarter
[Team][Focus][Mode][Purpose]YYYY-MM-DD

The diagram shows the team's current interaction modes.

Standard and licence note

Adapted from the Team API template by Team Topologies (https://github.com/TeamTopologies/Team-API-template), © Team Topologies, licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0, https://creativecommons.org/licenses/by-sa/4.0/). Team types and interaction modes are concepts from Team Topologies by Matthew Skelton and Manuel Pais. This adapted template, with its added guidance and examples, is shared under CC BY-SA 4.0.

Related templates