What motivates this to be implemented? What will this component achieve?
Which parts of the system will this feature rely on or modify? Write down specifics so people involved can review the design doc
If you are introducing new concepts or giving unintuitive names to components, write them down here.
Explain the input and output of the component, describe interactions and breakdown the smaller components if any. Include diagrams if appropriate.
Explain the goals of this design and how the design achieves these goals. Present alternatives considered and document why they are not chosen.
How should the component be tested?
Write down any conscious trade-off you made that can be problematic in the future, or any problems discovered during the design process that remain unaddressed (technical debts).
Write down future work to fix known problems or otherwise improve the component.