CDCgov / prime-reportstream

ReportStream is a public intermediary tool for delivery of data between different parts of the healthcare ecosystem.
https://reportstream.cdc.gov
Creative Commons Zero v1.0 Universal
72 stars 40 forks source link

Refactor ConfigSchema and its inheritors to be immutable #10580

Open jack-h-wang opened 1 year ago

jack-h-wang commented 1 year ago

User Story

As a developer, I want to reduce mutability so that the codebase is more concise and maintainable.

Description/Use Case

ConfigSchema and the classes that inherit it are derived from preconfigured sources that are not expected to change. We should ensure the implementation is immutable to enforce this.

Risks/Impacts/Considerations

All instances in the codebase where schemas are altered need to be evaluated and refactored.

Dev Notes

The main use case for altering a schema object is to perform merges, but all objects involved in the merge should not be mutable. A suggestion would be to alter merges so that they return a new schema object rather than alter existing objects.

Acceptance Criteria

bishoyayoub commented 1 year ago

Hey team! Please add your planning poker estimate with Zenhub @arnejduranovic @jack-h-wang @JessicaWNava @JFU-NAVA-PBC @jimmyfagan @mkalish @thetaurean @luis-pabon-tf