Particular / NServiceBus.RavenDB

https://docs.particular.net/nservicebus/ravendb/
Other
11 stars 17 forks source link

Async/Await support #113

Closed danielmarbach closed 8 years ago

danielmarbach commented 8 years ago

Task force: @colin-higgins @mauroservienti @DavidBoike @kbaley Connects to Particular/PlatformDevelopment#182

This is the RavenDB adapter epic which incorporates the work for making the RavenDB adapter async/await enabled. Please see this blog post about the reasoning behind it.

Plan of attack

danielmarbach commented 8 years ago

See also https://github.com/ravendb/ravendb/pull/606 (Pulled into Raven)

mauroservienti commented 8 years ago

I'd like to bring this forward. /cc @andreasohlund @danielmarbach

danielmarbach commented 8 years ago

@mauroservienti great!

mauroservienti commented 8 years ago

@andreasohlund why this is not approved anymore? Can I bring this forward or is it blocked?

andreasohlund commented 8 years ago

@mauroservienti this one is still approved, just got relabled when we where working with the new waffle boards. Go for it

mauroservienti commented 8 years ago

@danielmarbach @andreasohlund a couple of questions:

Thoughts?

danielmarbach commented 8 years ago

@mauroservienti

Ok?

andreasohlund commented 8 years ago

@mauroservienti sync with @SzymonPobiega since he just made a core change that makes the storage session used by the outbox, sagas and the users explicit

mauroservienti commented 8 years ago

@danielmarbach thanks. On the intentional stuff, isn't the TimeoutPersister used (also, but not only) by saga timeouts, so in the context of an handler?

thanks @andreasohlund I'll ping @SzymonPobiega

andreasohlund commented 8 years ago

On the intentional stuff, isn't the TimeoutPersister used (also, but not only) by saga timeouts, so in the context of an handler?

The request happens on a handler yes but talking to the persister happens on one of the two TM satellites

mauroservienti commented 8 years ago

:+1:

mauroservienti commented 8 years ago

@colin-higgins ping me as you come online :smile:

mauroservienti commented 8 years ago

The actual implementation of vNext starts from the assumption that the RavenDB client we are going to use is 3.x meaning that we are going to force all users to migrate the RavenDB server to 3.x.

Is this what we really want? or given that the 2.5 client will work with a 3.0 server we should not force the upgrade?

danielmarbach commented 8 years ago

We need at least client version 3801 (if I remember correctly). Lower versions async API is completely broken when used inside a TransactionScope

https://github.com/ravendb/ravendb/pull/606

mauroservienti commented 8 years ago

@danielmarbach got it, thanks. Are we happy with fact that this implies that the user is forced to upgrade servers to v3?

danielmarbach commented 8 years ago

I think there is no way around it

DavidBoike commented 8 years ago

All items on the PoA are either done done or have issues tracking their progress with the Core V6 label.

mauroservienti commented 8 years ago

What about the retrospective?

DavidBoike commented 8 years ago

Ack, you're right. It wasn't in the PoA. We can hold it during async persistence sync time Monday. @mauroservienti should we reopen until that is done and documented?

mauroservienti commented 8 years ago

I'm off next week, what about handling the retrospective async in a different issue?

DavidBoike commented 8 years ago

Moved back to in progress. Issue is "done" except for a retrospective where we will ensure that it is "done done" and raise any ancillary issues before closing this one.

Retrospective tentatively scheduled for async persistence sync time on Tuesday March 15 (after time off for Mauro and Colin)

DavidBoike commented 8 years ago

Retrospective

Good

Bad

Room for improvement