fsprojects / fsprojects/FSharp.AWS.DynamoDB
Support for Task-based layer
Nobody has claimed this yet.
- Dominant language
- F#
- Stars
- 61
- Forks
- 18
- Avg merge
- 7h 27m
- Merged PRs (30d)
- 1
Description
Logging this as a placeholder - it's more of a nice to have than something that I'd be personally investing the time to execute on at present.
In Equinox and Propulsion, I've recently transitioned to task from async. This means Equinox.DynamoStore has a layer which is all task and/or TaskSeq stuff, which then needs to call out to FSharp.AWS.DynamoDB. Aside from the perf cost, the layers of redundant mapping also make it harder to diagnose/reason about exception mappings and the like.
If one was building this lib today, arguably one would build it primarily with task in the first instance.
For Equinox's purposes, the ideal would be to introduce a layer that exposes a Task-based API, and then layer the existing one over that. I suspect that over time there will be a growing number of usage scenarios where the caller is task-based.
One concern would be that realistically one would need to expose a ?ct (or perhaps a non-optional CancellationToken arg) absolutely everywhere ... unless one waits for a long term cancellableTask impl to gain currency).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing async API and how Equinox.DynamoStore calls FSharp.AWS.DynamoDB. Define the Task-based layer, decide how CancellationToken arguments should be exposed, and ensure the existing API can be layered over it; the issue names no files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, fsharp
- Domain
- api, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100