introducing nimbus - azure service bus made easy
Post on 10-May-2015
2.188 Views
Preview:
DESCRIPTION
TRANSCRIPT
Introducing Nimbus – Azure Service Bus made easy
Damian Maclennan Andrew Harcourt
@damianm @uglybugger
1
2
Readify Principal Consultants
What is a Service Bus anyway ?????
3
4
5
Queues
6
Topics and Publish / Subscribe
7
Why use a service bus ?
Microservice Architecture
8
ENTERPRISE SERVICE BUS
Microservice ESB
Loosely Coupled Orchestrated
Independently Scalable Centralised Bottleneck
Fault tolerant Single Point of Failure
Free $$$$$$
9
ESB vs Microservice (A totally unbiased view)
• Azure Service Bus
• RabbitMQ
• MSMQ (With a little help)
• ZeroMQ
10
Service Bus Implementations
Azure Service Bus is
Bus As A Service
11
BAAS12
Azure Service Bus is totes AMQP compliant!!!!
(for all of your “Open Standards” needs)
13
14
Azure Service Bus has excellent documentation
(with community comments)
15
16
17
To TEH CODEZ
18
Azure Service Bus Sample
Surely there’s a better way!
19
20
NServiceBus Handler Example
NServiceBus makes us sad for
different reasons
21
22
23
So we made a thing!
24
https://github.com/damianmac/nimbus
https://twitter.com/NimbusAPI
25
Nimbus – Azure Service Bus Made Easy
• Open Source… really
• Nice Request / Response model
• Simple to configure
• Async
• Doesn’t tie you to a particular anything
• Handles some scenarios that others don’t
• Works On Premise too with Windows Service Bus
26
Why we wrote Nimbus and why we think it’s good
27
MOAR CODEZ
28
Nimbus Architecture Patterns and Scenarios
29
Command / Consumer
ApplicationEmail
Service
SendEmailCommand
30
Command / Competing Consumer
ApplicationEmail
Service
SendEmailCommand
EmailService
EmailService
Only one of these will get the message.
31
Publish / Subscribe
Application
Customer Purchase History Service
OrderConfirmedEvent
Logistics Service
EmailService
All of these things are interested in this event.
32
Request / Response
Application
Customer Purchase History Service
CustomerHistoryRequest
CustomerHistoryResponse
33
Request / Response Load Balancing
Application
Customer Purchase History Service
CustomerHistoryRequest
CustomerHistoryResponse
Customer Purchase History Service
Customer Purchase History Service
Only one of these will get the message.
34
Multicast Request / Response with Timeout
ApplicationFailed
Attempt Service
FraudlentCardRequest
IsThisDodgyResponse
Usage Rate Service
Geographic Risk
Assessment Service
All of these have n milliseconds to return an opinion.
35
Multicast Request / Response take first
ApplicationRisk
Assessment Service
FraudlentCardRequest
YesThisIsDodgyResponse
Risk Assessment
Service
Risk Assessment
Service
We take the response from fastest responder.
36
Competing Publish / Subscribe
ApplicationLogistics Service
OrderConfirmedEvent
Logistics Service
Logistics Service
Only one of these instances should react.
So what next ?
37
38
39
http://www.nuget.org/packages/Nimbus/
Damian Maclennan
@damianm
Andrew Harcourt
@uglybugger
40
Need Help ?
top related