-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: Operations Layer
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Use Case
As a driver engineer,
I want an operation hierarchy that is extensible, flexible and robust,
So that I can safely reason about my operations.
CommandOperation is a class in the Node driver's operation layer hierarchy that is responsible for attaching the following fields to commands as the commands are being built:
- Read/Write concern
- maxTimeMS
- explain
- collation
This provides a shared-code path for applying common command fields for the options listed above ( š) but is not granular; a command must either supportĀ all or none of these options (š).Ā Ā
We need an abstraction that:
- enables a shared code path to apply common command fields to all commands that support them
- is granular - operations can opt-into supporting only the options relevant to them
- (optional) supports Typescript, and ensures that if an operation declares supports, it is reflected in the operation's Typescript options
User Experience
- n/a - internal refactor
Dependencies
- n/a
Risks/Unknowns
- n/a
Acceptance Criteria
Implementation Requirements
- functional reqs, potential snafus to avoid, performance targets, etc
Testing Requirements
- n/a
Documentation Requirements
- n/a
Follow Up Requirements
- n/a