1003 B
ADR 001: Implement as asynchronous application
Due to the multiple paths and processes that need to be run to gather and collect data over a network and the lack of need to synchronously process anything, it is found to be necessary to run the application in an asynchrounous manner,
Decision
The application will be written using an asynchronous design. Selection of other libraries to use for the application will be focused on asynchronous libraries whenever possible. If no asynchronous library is possible/available, the use of threadpools and processpools will be determined on a case-by-case manner.
Rationale
It makes more sense to build the application from the ground up as asynchronous rather than synchronous first and later asynchronous, as there will be less tech debt to make a decision like this up-front.
Status
Accepted
Consequences
There will likely be complications as expected from any concurrency operations which will need to be dealt with when they arise.