Request for Comments (RFC) Process
Overview
The Request for Comments (RFC) process was used by the Cosmos SDK team as an asynchronous collaboration mechanism to facilitate distributed decision-making. While this formal RFC process is no longer actively used, understanding it provides context for how major SDK features were discussed and designed. RFCs served as “async whiteboarding sessions,” enabling the globally distributed Cosmos SDK team and contributors to collaborate on design decisions without requiring synchronous meetings. This was particularly important given the team’s distribution across multiple time zones.What Were RFCs?
RFCs were documents designed to:- Facilitate Discussion: Replace the need for synchronous meetings with structured asynchronous discussion
- Circulate Information: Share potential changes or features with the wider community
- Build Consensus: Allow stakeholders to reach agreement before implementation
- Document Discussions: Capture design discussions for future reference
- RFCs: Used to discuss and reach consensus on proposed features or changes
- ADRs: Used to document decisions after consensus had already been reached
The RFC Lifecycle
The RFC process followed these steps:- Creation: Copy the RFC template with filename pattern
rfc-next_number-title.md
- Draft PR: Create a draft pull request for early feedback
- Documentation: Clearly document context and proposed solution
- Discussion: Community and team members provide feedback
- Iteration: Author refines proposal based on feedback
- Consensus: Stakeholders reach agreement on the approach
- Transition: Once consensus is reached, create an ADR to document the decision
Historical RFC Examples
Several important SDK features were discussed through the RFC process:- Transaction Validation: Established patterns for transaction validation
- Module Communication: Defined inter-module communication standards
- API Design: Shaped the SDK’s API architecture
Why the Process Changed
The formal RFC/ADR process was retired in favor of more agile approaches because:- Velocity: The formal process added overhead that slowed development
- Flexibility: Direct implementation with iteration proved more efficient
- Tooling: GitHub’s improved discussion and review features reduced the need for separate RFC documents
- Community Evolution: The mature community could engage effectively through lighter-weight processes
Current Collaboration Methods
The Cosmos SDK team now uses:- GitHub Discussions: For community proposals and discussions
- Pull Request Reviews: For implementation feedback
- Working Groups: For focused synchronous collaboration
- Discord/Forum: For informal technical discussions
- Direct Implementation: With iterative refinement based on feedback
Legacy Value
While no longer active, the historical RFCs demonstrated important principles:- Transparency: All major decisions were discussed openly
- Inclusivity: Global contributors could participate asynchronously
- Documentation: Discussions were preserved for future reference
- Thoughtfulness: Changes underwent thorough consideration
Resources
For those interested in SDK development history:- GitHub Discussions - Current forum for proposals and discussions
- Historical ADRs - Decisions that resulted from RFC discussions
- Contributing Guidelines - Current contribution process