Team API Design Skill
When to Use This Skill
Use this skill when:
-
Team Api Design tasks - Working on define team interfaces, contracts, and communication boundaries
-
Planning or design - Need guidance on Team Api Design approaches
-
Best practices - Want to follow established patterns and standards
Overview
Define clear team interfaces, contracts, and communication boundaries using Team API patterns.
MANDATORY: Documentation-First Approach
Before designing team APIs:
-
Invoke docs-management skill for team interface patterns
-
Verify Team API concepts via MCP servers (perplexity)
-
Base guidance on Team Topologies team API framework
What is a Team API?
TEAM API: The explicit interface a team exposes to other teams
┌─────────────────────────────────────────────────────────────────┐ │ TEAM API │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Code & │ │ Versioning │ │ Service │ │ │ │ Artifacts │ │ & Releases │ │ Catalog │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Wiki & │ │ Practices │ │ Ways of │ │ │ │ Docs │ │ & Runbooks │ │ Working │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Chat & │ │ Office │ │ Support │ │ │ │ Channels │ │ Hours │ │ Rotation │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘
PURPOSE: Make team interactions explicit, predictable, and sustainable
Team API Components
- Code and Artifacts
TECHNICAL INTERFACE:
Repositories: • Main repo location (URL) • Contributing guidelines • Code review expectations • Branch naming conventions
APIs: • OpenAPI/AsyncAPI specs • Authentication requirements • Rate limits and quotas • Deprecation policy
Artifacts: • Package registry location • Container image registry • Artifact versioning scheme • Release notes location
- Versioning and Releases
RELEASE INTERFACE:
Versioning: • Semantic versioning (MAJOR.MINOR.PATCH) • Breaking change policy • Deprecation timeline • Migration guides
Release Schedule: • Release cadence (weekly, bi-weekly, continuous) • Release windows • Hotfix process • Rollback procedures
Compatibility: • Supported versions • EOL announcements • Backward compatibility guarantees • Forward compatibility approach
- Documentation
KNOWLEDGE INTERFACE:
Team Wiki: • Team overview and mission • Architecture decisions (ADRs) • Design documents • Onboarding guides
API Documentation: • Getting started guides • API reference • Code examples • FAQ and troubleshooting
Operational Docs: • Runbooks • Incident response procedures • Monitoring dashboards • Alert explanations
- Communication Channels
COMMUNICATION INTERFACE:
Asynchronous: • Primary Slack/Teams channel • Announcements channel • Bug/issue tracker • Email distribution list
Synchronous: • Office hours schedule • On-call rotation • Escalation path • Meeting cadence
Response Times: • Slack: 4 business hours • Issues: 1 business day • Urgent: 1 hour • Incident: 15 minutes
- Service Level Expectations
SERVICE INTERFACE:
Availability: • Target uptime (99.9%) • Maintenance windows • Planned downtime notice period
Performance: • Latency targets (p50, p99) • Throughput limits • Error rate targets
Support: • Business hours support • On-call availability • Incident severity levels • Resolution time targets
Team API Template
Team API: [Team Name]
Team Overview
Mission: [One-sentence mission statement] Team Type: [Stream-aligned | Platform | Enabling | Complicated-Subsystem] Bounded Context: [Domain owned]
Team Members
| Role | Name | Contact |
|---|---|---|
| Tech Lead | [Name] | @handle |
| Product Owner | [Name] | @handle |
| Engineers | [Names] | @handles |
What We Own
Services
| Service | Description | Repository |
|---|---|---|
| [Name] | [Purpose] | [URL] |
APIs
| API | Spec | Status |
|---|---|---|
| [Name] | [OpenAPI URL] | [Stable/Beta/Alpha] |
How to Contact Us
Asynchronous
- Slack: #team-[name]
- Issues: [Jira/GitHub project URL]
- Email: team-[name]@company.com
Synchronous
- Office Hours: [Day/Time]
- On-call: [PagerDuty URL or rotation]
Response Times
| Channel | Expected Response |
|---|---|
| Slack | 4 business hours |
| Issues | 1 business day |
| Urgent Slack | 1 hour |
| Incidents | 15 minutes |
How to Work With Us
Requesting Changes
- Open an issue in [repository]
- Attend office hours to discuss
- Submit PR following [contributing guide]
Consuming Our APIs
- Read [getting started guide]
- Request API credentials via [process]
- Follow [rate limiting guidelines]
Escalation Path
- Post in #team-[name]
- Page on-call if urgent
- Contact Tech Lead directly if blocked
Service Level Expectations
Availability
- Target: 99.9% uptime
- Maintenance Window: [Day/Time]
- Notice Period: 48 hours for planned downtime
Performance
- p50 Latency: [X]ms
- p99 Latency: [X]ms
- Error Rate: <0.1%
Support
- Business Hours: 9am-5pm [Timezone]
- On-call Hours: 24/7 for P1/P2
- Holiday Coverage: [Policy]
Versioning and Releases
Release Cadence
- Frequency: [Weekly/Bi-weekly/Continuous]
- Release Day: [Day]
- Changelog: [Location]
API Versioning
- Strategy: [URL path | Header | Query param]
- Breaking Change Notice: [X weeks]
- Deprecation Period: [X months]
Currently Supported Versions
| Version | Status | EOL Date |
|---|---|---|
| v3 | Current | N/A |
| v2 | Maintenance | [Date] |
| v1 | Deprecated | [Date] |
Documentation
For Users
- [Getting Started Guide]
- [API Reference]
- [Code Examples]
- [FAQ]
For Contributors
- [Contributing Guidelines]
- [Architecture Overview]
- [Development Setup]
- [Testing Guide]
Operational
- [Runbooks]
- [Monitoring Dashboard]
- [Incident Response]
Dependencies
What We Depend On
| Team/Service | Type | Criticality |
|---|---|---|
| [Name] | [API/Library/Data] | [High/Medium/Low] |
What Depends On Us
| Team/Service | Interface | Usage |
|---|---|---|
| [Name] | [API/Event/Library] | [Description] |
Roadmap
Current Quarter
- [Initiative 1]
- [Initiative 2]
Next Quarter
- [Planned work]
Known Limitations
- [Limitation 1]
- [Limitation 2]
Team API Governance
Creating a Team API
TEAM API CREATION PROCESS:
-
DRAFT □ Use template above □ Fill in all sections □ Get team consensus
-
REVIEW □ Review with stakeholders □ Validate with consumers □ Check completeness
-
PUBLISH □ Store in team wiki/repo □ Register in service catalog □ Announce to organization
-
MAINTAIN □ Review quarterly □ Update on changes □ Gather feedback
Team API Maturity Levels
MATURITY MODEL:
LEVEL 1: BASIC □ Team contact information exists □ Primary service documented □ Basic Slack channel
LEVEL 2: DEFINED □ Full team API document □ Response time expectations □ Versioning policy defined □ Basic SLEs documented
LEVEL 3: MEASURED □ SLEs tracked and reported □ Consumer feedback collected □ Dependencies mapped □ Regular API reviews
LEVEL 4: OPTIMIZED □ Team API continuously improved □ Automation for API updates □ Consumer satisfaction tracked □ Industry best practices adopted
Platform Team API Example
Platform Team API: Developer Platform
Mission
Enable stream-aligned teams to deliver software faster through self-service infrastructure and golden paths.
Team Type: Platform
What We Provide
Self-Service Capabilities
| Capability | Interface | Docs |
|---|---|---|
| Container Deployment | CLI/Portal | [Link] |
| Database Provisioning | Terraform Module | [Link] |
| CI/CD Pipeline | Template | [Link] |
| Secrets Management | Vault API | [Link] |
Golden Paths
| Path | Use Case | Guide |
|---|---|---|
| Web Service | Standard web APIs | [Link] |
| Event Consumer | Kafka consumers | [Link] |
| Scheduled Job | Batch processing | [Link] |
Interaction Model
X-as-a-Service (Default)
- Use our self-service capabilities
- Follow golden path documentation
- Submit issues for problems
- Attend office hours for questions
Collaboration (By Request)
- Available for complex migrations
- Custom platform needs
- Time-boxed engagements
- Requires PM approval
Office Hours
- When: Tuesdays 2-3pm, Thursdays 10-11am
- Where: #platform-office-hours Slack huddle
- What: Q&A, demos, troubleshooting
Support Tiers
| Tier | Response | Example |
|---|---|---|
| P1 - Production Down | 15 min | Platform unavailable |
| P2 - Degraded | 1 hour | Slow deployments |
| P3 - Blocked | 4 hours | Can't provision resource |
| P4 - Question | 1 day | How to configure X |
Stream-Aligned Team API Example
Team API: Payments Team
Mission
Process payments reliably and securely for all commerce streams.
Team Type: Stream-Aligned
Bounded Context: Payment Processing
What We Own
Services
| Service | Purpose | SLE |
|---|---|---|
| Payment Gateway | Process payments | 99.95% uptime |
| Refund Service | Handle refunds | 99.9% uptime |
| Fraud Detection | Real-time fraud | p99 < 50ms |
APIs
| API | Description | Spec |
|---|---|---|
| /payments | Create/query payments | [OpenAPI] |
| /refunds | Process refunds | [OpenAPI] |
Events Published
| Event | Topic | Schema |
|---|---|---|
| PaymentCompleted | payments.completed | [Avro] |
| RefundProcessed | payments.refunds | [Avro] |
How to Integrate
For Payment Processing
- Read [integration guide]
- Request sandbox credentials
- Complete security review
- Go-live checklist
For Consuming Events
- Subscribe to Kafka topic
- Implement idempotent handler
- Set up DLQ handling
- Monitor consumer lag
Constraints
- PCI Compliance: All integrations require security review
- Rate Limits: 1000 req/sec per client
- Data Retention: 7 years for transactions
Assessment Checklist
TEAM API HEALTH CHECK:
DISCOVERABILITY □ Team API document exists and is findable □ Registered in service catalog □ Links work and content is current
COMPLETENESS □ All sections filled in □ Contact information accurate □ Dependencies documented □ SLEs defined
CLARITY □ Non-team members can understand □ No jargon or undefined terms □ Clear call-to-action for consumers □ Examples provided
MAINTENANCE □ Last updated within 3 months □ Regular review scheduled □ Feedback mechanism exists □ Ownership clearly assigned
EFFECTIVENESS □ Consumers find what they need □ Response times being met □ Fewer repeated questions □ Team satisfaction with API
Workflow
When designing team APIs:
-
Audit Current State: What exists today? What's implicit?
-
Identify Consumers: Who interacts with the team?
-
Document Interface: Use template, fill completely
-
Validate with Consumers: Does this meet their needs?
-
Publish and Announce: Make it discoverable
-
Measure and Iterate: Track effectiveness, improve
References
For detailed guidance:
Last Updated: 2025-12-26