Transcript
Page 1: New and shiny things in NServiceBus 3.0

What’s new in NServiceBus 3.0?

Andreas Öhlundhttp://andreasohlund.net

Page 2: New and shiny things in NServiceBus 3.0

Main goal for 3.0

Better out of the box experience

Page 3: New and shiny things in NServiceBus 3.0

Game plan

• Storage• Naming endpoints• Handling time• Bridging remote sites• Random stuff• Q & A

Page 4: New and shiny things in NServiceBus 3.0

What is a bus anyway?App

Bus.dll

App

Bus.dll

App

Bus.dll

App

Bus.dll

App

Bus.dll

App

Bus.dll

App

Bus.dll

App

Bus.dll

Page 5: New and shiny things in NServiceBus 3.0

We need to store stuff

Page 6: New and shiny things in NServiceBus 3.0

Deduplication

Available workers

Timeouts

Subscriptions

Storage needs

App

Bus.dll

Sagas

Scaling out

App

Bus.dll

Page 7: New and shiny things in NServiceBus 3.0

• Default storage• Bundled with NServiceBus• NH=>NServiceBus.NHibernate.dll

Page 8: New and shiny things in NServiceBus 3.0

It’s all in the name

Page 9: New and shiny things in NServiceBus 3.0

Conventions based on the endpoint name

Orders

Bus.dll

Orders

OrdersInput queue

Database

Orders.TimeoutsTimeouts

Gateway url http://localhost/orders

Page 10: New and shiny things in NServiceBus 3.0

Naming endpoints

• Defaults to your namespace• Attribute: [EndpointName(“Orders”)]• Install: /serviceName:Orders• Configure.DefineEndpointName(…)

Page 11: New and shiny things in NServiceBus 3.0

Demo

Storing sagas in RavenDB

Page 12: New and shiny things in NServiceBus 3.0

Durable timeouts vNext

Page 13: New and shiny things in NServiceBus 3.0

3.0 Timeout manager

App

Bus.dll

Timeouts

TimeoutsBusiness

LogicTimeoutManager

Page 14: New and shiny things in NServiceBus 3.0

Bending time to your will

• Sagas– RequestUtcTimeout<T>(…)– IHandleTimeout<T>– v2.6 Timeouts still supported

• Bus.Defer<T>(…)• All endpoints have a local

timeoutmanager

Page 15: New and shiny things in NServiceBus 3.0

Demo

Using timeouts

Page 16: New and shiny things in NServiceBus 3.0

Bridging remote sites

Page 17: New and shiny things in NServiceBus 3.0

GatewaySiteA

HeadquarterEndpoint

Endpoint

Gateway

Gateway

Http

Msmq

App

Bus.dll

App

Bus.dll

Msmq

Page 18: New and shiny things in NServiceBus 3.0

What can the gateway dofor you?

• Bridge physical sites• Supports multiple channels• Does de-duplication• Performs retries• Can act as a alternate channel for

administrative messages• Enable Browser NServiceBus

communications

Page 19: New and shiny things in NServiceBus 3.0

Demo

Gateway

Page 20: New and shiny things in NServiceBus 3.0

Master Nodes

App

Bus.dll

App

Bus.dll

App

Bus.dll

MyCluster

Worker2Worker1

MasterNode = MyCluster

MasterNode = MyCluster

Distributor

Timeoutmanager

Gateway

Profile = Worker

Profile = Worker

Profile = Master

Page 21: New and shiny things in NServiceBus 3.0

Data bus

App

Bus.dll

App

Bus.dll

Main transport

Data Bus

MSMQ / Azure Queues

File share / Blob storage

public DataBusProperty<byte[]> Image{ get; set; }

Page 22: New and shiny things in NServiceBus 3.0

Other features

• Unobtrusive mode• DatabusProperty<T>• ISendMessages / IReceiveMessages• Modeling tools• Exception details attached to messages

in the error queue• Client side pipeline

Page 23: New and shiny things in NServiceBus 3.0

Q & A

Page 24: New and shiny things in NServiceBus 3.0

Thanks for listening!

www.nservicebus.comhttp://andreasohlund.net

@andreasohlund


Top Related