When designing cluster APIs/specs, explicitly partition endpoints into categories by actor and compatibility obligation, and document which categories alternative implementations must implement.
Standard
Practical checklist
{Actor: node|client|admin|internal, Obligation: Required|Optional|Not Required}.shard_id) are not required for the default path.Example (shape of the spec, pseudo-code)
Endpoint: HEARTBEAT
Actor: node
Obligation: Required
Purpose: node↔FC liveness, role decisions
Endpoint: TD/FC internal messages (FAILOVER_STATUS, TOPology_RESPONSE)
Actor: internal
Obligation: Not Required
Purpose: FC↔TD propagation; no compatibility guarantee
Endpoint: ADMIN.CREATE_SHARD / SHARD_ID on NODE_JOIN
Actor: admin
Obligation: Optional
Default: shard IDs auto-managed
Power-user: allow specifying shard_id to match external orchestration needs
This prevents “spec creep” where admin/internal endpoints accidentally become de-facto requirements, and it allows alternative implementations to remain compatible without re-creating internal details.
Enter the URL of a public GitHub repository