fsprojects / FSharp.AWS.DynamoDB

F# wrapper API for AWS DynamoDB
MIT License
58 stars 18 forks source link

Add TransactWriteItems #48

Closed bartelink closed 2 years ago

bartelink commented 2 years ago
bartelink commented 2 years ago

@samritchie This develops https://github.com/bartelink/FSharp.AWS.DynamoDB/pull/3 I'm flexible on whether the cleanup PR #47 goes in before or after this (or in some other release)

Will keep chipping away adding tests but would appreciate your thoughts on where to draw the line - ultimately I'm satisfied the basic functionality of the exception filter and the condition checks etc are correct.

After that, the incremental value of validating arbitrary combinations of conditions and individual TransactWrite items becomes more marginal for me. i.e. its duplicating business of the underlying service and/or SDK (which is not the end of the world, but in the context of this repo they should be marked as characterisation tests and/or examples)

bartelink commented 2 years ago

@samritchie I can't think of anything else to do so from my point of view this is ready for final review - let me know if you can see anything that needs doing (in particular, the README is more a braindump than polished tech writing!)

if not, I'll integrate test it when you get a chance to merge and release

samritchie commented 2 years ago

Thanks @bartelink, I'll go through this today - I’m still recovering from the plague and my brain is a bit slow at the moment

bartelink commented 2 years ago

Thanks - I know the feeling so doubly appreciate any time you can carve out in that case.

For reference, here's where it all slots into Equinox (am I glad I have tests over that!) https://github.com/jet/equinox/blob/6a23d9e26aab33b027d7694502415a552e9ce5bb/src/Equinox.DynamoStore/DynamoStore.fs#L417-L468

(And if you think no reasonable person could love that code, contrast it with https://github.com/jet/equinox/blob/6a23d9e26aab33b027d7694502415a552e9ce5bb/src/Equinox.CosmosStore/CosmosStore.fs#L362-L469, which definitely took more development effort and tight-rope walking!)

bartelink commented 2 years ago

Nudge @samritchie - hoping to release a beta of https://github.com/jet/equinox/pull/321 vs having to hand-build some alpha... Even an -alpha Nuget upload would help a lot...

bartelink commented 2 years ago

Thanks for releasing, much appreciated. Your comments are on the money; will circle back on them in the coming days...