-
Type: Task
-
Resolution: Done
-
Priority: Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
Context
Our existing codebase has significant mixing of data and IO-handling code. Since any IO-related code must be placed in the asynchronous sub-module, this results in a lot of non-IO code being put there as well. All of that code is then duplicated during the synchronization process despite being unchanged in the synchronous version. We should refactor our module and class design to explicitly separate IO functionality from data and business logic.
Definition of done
Only modules and methods that perform IO should be in the asynchronous subfolder. These modules and methods should be rewritten to minimize the amount of business logic and data handling done alongside IO. This will reduce code duplication across our codebase significantly.
Pitfalls
N/A.