loosely coupled apps - sdd conferencesddconf.com/brands/sdd/library/masstransit.pdfrabbitmq bus...

17
Scaling Applications With Microservices using MassTransit and RabbitMq

Upload: others

Post on 12-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

Scaling ApplicationsWith Microservices using MassTransit and RabbitMq

Page 2: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Roland Guijt

Page 3: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Agenda

Page 4: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Let’s Do This?

Graph by Martin Fowler

Page 5: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Vertical Coupling

Application

Component

Layer

Class

Page 6: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Horizontal Coupling

Page 7: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Problems

Page 8: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

SOA

Web

Service

Page 9: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

SOA

Page 10: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Event Driven Architecture

Page 11: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

The Big Shiny Thing

• The Service Bus == MassTransit

• Ethernet is an example of a bus, it’s everywhere!

• Don’t confuse with ESB

Page 12: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Topology and Transport

RabbitMq

Bus

QueueExchange

Page 13: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Micro Services

• Components as a service

• Loosely coupled via the service bus

• Autonomous == no dependencies, only share contracts

• Organizational benefits

Page 14: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Demo Time

Page 15: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Sagas

Create

Approve

Pick

Completed

IOrder

IOrderApproved

IApproveOrderCreate

Approve

Pick

Completed

Page 16: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Demo Time

Page 17: Loosely Coupled Apps - SDD Conferencesddconf.com/brands/sdd/library/MassTransit.pdfRabbitMq Bus Exchange Queue. @rolandguijt Micro Services •Components as a service •Loosely coupled

@rolandguijt

Thank You

Contact me!

Roland Guijt

@rolandguijt

[email protected]

www.rmgsolutions.nl