Is your feature request related to a problem? Please describe.
A new contributor to Brighter needs to understand how the code works in an assembly. They need to understand the design, including how key responsibilities are allocated to classes and the key implementation decisions made by those classes.
- We already use Documentation Comments to provide users with Intellisense help.
- We already have user-facing documentation.
- We already have a Contributing.md file that describes how to write code for contribution to Brighter (including style, tests, etc.)
We do not need to repeat these.
What we need is a guide to the design of the assembly, so you know how to make changes.
Describe the solution you'd like
- For the assembly Paramore.Brighter, review it's design and provide documentation.
- The documentation should be placed in the docs/guides folder.
- The documentation should be in markdown.
- The file should be named paramore_brighter_core_guide.md
- It should document the design, with a focus on the CommandProcessor.
- It should document how the CommandProcessor dispatches requests to handlers through its pipeline.
- It should describe the responsibilities of the key classes involved.
- It should draw PlantUML diagrams if it helps.
- It should focus on "what you would need to know as a new contributor?"
- What are the facts that would help you get started?
- It may also choose to document information that would be useful to an agent that was seeking to make changes to Brighter, and would help give it context to make changes.
- Do not repeat the Documentation comments.
- Instead, focus on how Brighter works "Under the Hood" by tracing the different paths that can be used to send, publish, or post requests with Brighter (including DepositPost and ClearOutbox).
- It should also document support for middleware through attributes and handlers
- It should document Brighter's synchronization context.
Is your feature request related to a problem? Please describe.
A new contributor to Brighter needs to understand how the code works in an assembly. They need to understand the design, including how key responsibilities are allocated to classes and the key implementation decisions made by those classes.
We do not need to repeat these.
What we need is a guide to the design of the assembly, so you know how to make changes.
Describe the solution you'd like