Particular / NServiceBus

Build, version, and monitor better microservices with the most powerful service platform for .NET
https://particular.net/nservicebus/
Other
2.1k stars 647 forks source link

Transports should not access core settings via the settings holder #5044

Open andreasohlund opened 7 years ago

andreasohlund commented 7 years ago

Instead we should pass the needed settings in the transport seam.

This issue will start with surveying the use in downstreams in order to serve as input to a "transport seam vNext".

SqlTransport

Learning

MSMQ

ASQ (Not complete)

ASB

TBD

Rabbit

TBD

SQS

TBD

EventStore

TBD

NSB Raw

Needs to provide all relevant settings to mimic what the core does which is very error prone and brittle

andreasohlund commented 7 years ago

@Particular/sqlserver-transport-maintainers can you double check that I got the section about your transport right?

MarcinHoppe commented 7 years ago

@andreasohlund I have no context: what problem are we solving here?

andreasohlund commented 7 years ago

We have many cases of transports ”pulling stuff out of settings” and that leads to bugs due to invalid assumptions, timing etc In the future we want the core to pass relevant settings explicitly in the transport seam so that transports would only user ”settings” for their own transport specific dials and knobs.

This issue just captures the current lay of the land.

Does this make sense?

MarcinHoppe commented 7 years ago

@andreasohlund I added two more findings for the SQL Server transport in the issue description.

andreasohlund commented 7 years ago

Added

NSB Raw

Needs to provide all relevant settings to mimic what the core does which is very error prone and brittle

timbussmann commented 7 years ago

👍 but I think this needs to be raised on pdev.

andreasohlund commented 7 years ago

Yea, will raise a more overarching issue in pdev soon On Tue, 7 Nov 2017 at 10:42, Tim Bussmann notifications@github.com wrote:

👍 but I think this needs to be raised on pdev.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Particular/NServiceBus/issues/5044#issuecomment-342428339, or mute the thread https://github.com/notifications/unsubscribe-auth/AAHoZBN--Ztuh1RSX5Csw2iasREnQfEoks5s0CYdgaJpZM4QCaBF .

bording commented 7 years ago

One category of items that will be common to a lot of transports is all of the stuff needed to make the timeout manager "hybrid" mode work for backcompat for native delays.

Adding support for that in core directly would eliminate a lot of stuff from the transports.