Principles of Design
Principles of Design
- The protocol must be simple enough for multiple implementations to be developed, but simplicity is not the only factor.
- The protocol must be functional enough to support a wide range of applications beyond just social media.
- The protocol should not impede high-performance high-throughput implementations.
- It is ok to do things multiple ways if there are very compelling reasons to do so. Every additional way to do something that is required to be supported by all software thus further burdens all software, and that cost must be well justified.
- Code that isn't required by everybody should be defined outside of the core specification.
Rationale used for various decisions is available in an appendix.