跳到正文
cccskills
免费在 GitHub 公开

architecture-paradigm-client-server

Applies client-server architecture for web/mobile apps. Use when designing systems with centralized backend services, trust boundaries, or offline-first sync.

中文简介正在准备中。当前显示原文说明。

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md4.3 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

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.

When NOT To Use

  • Systems with no network boundary between UI and logic (use archetypes:architecture-paradigm-modular-monolith)
  • Choosing among paradigms in the first place (use archetypes:architecture-paradigms)

Adoption Steps

  1. Define Responsibilities: Clearly delineate which logic and data reside on the client versus the server, with the goal of minimizing duplication.
  2. Document the Contracts: Formally document all APIs, data schemas, authentication flows, and any capability negotiation required for handling different client versions.
  3. Plan for Version Skew: Implement a strategy to manage different client and server versions, such as using feature flags, Accept headers for content negotiation, or semantic versioning for APIs.
  4. 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.
  5. 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

  • "Chatty" Clients:
    • Mitigation: A client making too many small requests can lead to poor performance. Consolidate API calls using patterns like the Façade or Gateway, and implement caching strategies on the client or at the network edge.
  • "Thick" Clients with Duplicated Logic:
    • Mitigation: When clients contain too much business logic, it often becomes duplicated and out-of-sync with the server. Share validation logic by packaging it in a common library or move the rules definitively to the server.
  • Peer-to-Peer Data Conflicts:
    • Mitigation: In a peer-to-peer model, data conflicts are inevitable. Design formal conflict resolution strategies (e.g., CRDTs, last-write-wins) and consensus mechanisms from the beginning.

Concrete Components

Vocabulary for the tools and abstractions an implementation of this paradigm tends to carry. Not dependencies, and not tools: frontmatter.

  • api-contract-generator: produces machine-readable OpenAPI/RPC contracts the client and server share
  • networking-debugger: captures request/response traces for diagnosing latency, retries, and timeout issues

Exit Criteria

  • An ADR is produced naming client roles, server roles (and peer roles if applicable), trust boundaries, and the API versioning strategy chosen.
  • A formal API or protocol specification exists (OpenAPI, protobuf, or equivalent) covering all documented endpoints or capabilities.
  • The version-skew strategy (feature flags, Accept headers, or semantic versioning) is documented before any client or server code is written.
  • If offline-first or P2P capability is included, the conflict-resolution strategy (CRDT, last-write-wins, or consensus mechanism) is named in the ADR.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Shapes turns action-first: action leads, steps numbered, state restated. Use for ADHD-friendly output. Do not use to trim tokens; use response-compression.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Inverts burden of proof for code additions. Use when reviewing PRs, planning refactors, or running unbloat to challenge every addition's necessity.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Tracks per-agent token usage and flags waste in parallel dispatch. Use when evaluating parallel agent efficiency or after a multi-agent run.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Coordinates Claude agent teams via filesystem protocol. Use when orchestrating parallel agents with task dependencies. Do not use for single-agent tasks.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Evaluates API surface design, consistency, and exemplar alignment. Use when reviewing public API changes or before releasing a new API surface.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

Selects architecture paradigm via research before scaffolding. Use when architecture is undecided and the choice needs justification and documentation.

中文简介正在准备中。当前显示原文说明。

athola/claude-night-market3432026年10月24日 更新

查看 athola 的全部技能

报告此技能的问题