architecture-paradigm-client-server
Installation
SKILL.md
The Client-Server and Peer-to-Peer Paradigms
When to Employ This Paradigm
- For traditional applications that have centralized services, such as web or mobile clients communicating with backend APIs.
- For systems exploring decentralized or "offline-first" capabilities that rely on peer-to-peer synchronization.
- To formally document trust boundaries, client-server version negotiation, and API evolution strategies.
Adoption Steps
- Define Responsibilities: Clearly delineate which logic and data reside on the client versus the server, with the goal of minimizing duplication.
- Document the Contracts: Formally document all APIs, data schemas, authentication flows, and any capability negotiation required for handling different client versions.
- Plan for Version Skew: Implement a strategy to manage different client and server versions, such as using feature flags,
Acceptheaders for content negotiation, or semantic versioning for APIs. - Address Connectivity Issues: If the application is not purely client-server, design for intermittent connectivity. This may involve implementing offline caching, data synchronization protocols, or peer discovery and membership services.
- Secure All Communications: Enforce the use of TLS for all data in transit. Implement authorization policies, rate limiting, and detailed telemetry for every endpoint.
Key Deliverables
- An Architecture Decision Record (ADR) that covers the roles of clients, servers, and peers, defines the trust boundaries, and outlines deployment assumptions.
- Formal API or protocol specifications, along with a suite of compatibility tests.
- Runbooks detailing the coordination required for rollouts, such as client release waves, backward-compatibility support, or operational procedures for a peer-to-peer network.
Risks & Mitigations
Related skills
More from athola/claude-night-market
project-planning
Turn a specification into a phased implementation plan with dependency ordering.
127code-quality-principles
KISS, YAGNI, and SOLID code quality principles for clean code, reducing complexity and preventing over-engineering.
95project-brainstorming
Guide project ideation via Socratic questioning to generate project briefs.
93doc-generator
Generate or remediate documentation with human-quality writing and style.
82rigorous-reasoning
Anti-sycophancy reasoning checklist.
80project-specification
Transform project briefs into testable specifications with user stories, acceptance criteria, and measurable outcomes.
79