New and shiny things in NServiceBus 3.0

24
What’s new in NServiceBus 3.0? Andreas Öhlund http://andreasohlund.net

description

Andreas Öhlund, one of the lead developers for NServiceBus, discusses the new and shiny things in NServiceBus 3.0. Come and get and overview of the new features in the upcoming NServiceBus 3.0 release.

Transcript of New and shiny things in NServiceBus 3.0

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