Top Banner
The Business Event Bus Joris Meijer Dizzit
37

The Business Event Bus

Jan 21, 2018

Download

Software

Joris Meijer
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The Business Event Bus

TheBusinessEventBus

Joris Meijer

Dizzit

Page 2: The Business Event Bus

Dizzit &A little about me

-Married,fatherofImke,Felix-LivinginVoorschoten-+/- 8yexp.inSME(php,matlab),>4yexp.inlargeenterprise(Java)- JoinedDizzit december 2015-Scrummaster/developer- InterestedinScrum,Kafka,Docker,Rancher,muchmore

Page 3: The Business Event Bus

Dizzit &Our starting point

-Enterprisecontext-BEBwillbecomecorearchitecture-100sofconnectingapplications-Versioneddatacontracts

-Movementtowardsdevops-Infrastructureindependence

Page 4: The Business Event Bus

Dizzit &Application classification

3-2-3

3-2-3

Page 5: The Business Event Bus

Dizzit &Application classification

3-2-3

3-2-3availability

Page 6: The Business Event Bus

Dizzit &Application classification

3-2-3

3-2-3integrity

Page 7: The Business Event Bus

Dizzit &Application classification

3-2-3

3-2-3confidentiality

Page 8: The Business Event Bus

Dizzit &Design choices

3-2-3

-Multidatacentersetup-Configurationprovider-Schemaregistry-Securesetup-BEBclientlibrary-Dockerize allcomponents

Page 9: The Business Event Bus

Dizzit &Multi datacenter setup

3-2-3

Best Boxtel

- Active-activesetup-DatacentersinBestandBoxtel-UsingMirrorMaker- Challenge:preventfeedback

Page 10: The Business Event Bus

Dizzit &Multi datacenter setupActive-active setupChallenge: prevent infinite loop

AMessage x

B

sync

sync

-Preventfeedback

Page 11: The Business Event Bus

Dizzit &Multi datacenter setupActive-active setupChallenge: prevent infinite loop

AMessage x

B

sync

sync

Message x

-Preventfeedback

Page 12: The Business Event Bus

Dizzit &Multi datacenter setupActive-active setupChallenge: prevent infinite loop

AMessage x

B

sync

sync

Message xMessage x

-Preventfeedback

Page 13: The Business Event Bus

Dizzit &Multi datacenter setup

Custom BEB header

Magic Major Minor Info size Info ORIGINAL

MESSAGE

0B EB 00 01 04 00 00 00 01

-CustomBEBheader

Page 14: The Business Event Bus

Dizzit &Multi datacenter setup

-Custommessagehandler

Page 15: The Business Event Bus

Dizzit &Configuration provider

-Findaclustertoconnectto-Dynamicconfiguration- Interruptions(maintenance)

-Spreadtheload

Client

Configuration provider

1

2

ClusterX3

Page 16: The Business Event Bus

Dizzit &Configuration provider

-Findaclustertoconnectto- httpGET:

http://cp.rabobank.nl?clientTopic=distribution-outboundpushmessage- Result:

Page 17: The Business Event Bus

Dizzit &Configuration provider

-Spreadtheload- httpGET:

http://cp.rabobank.nl?clientTopic=distribution-outboundsmsmessage- Result:

Page 18: The Business Event Bus

Dizzit &Configuration provider

-Dynamicconfiguration-Allowmaintenance

- httpPOST:http://cp.rabobank.nl/admin/setswitch?switch=clusterA

- result:

Page 19: The Business Event Bus

Dizzit &BEB client library

-Simplifysetupforconnectingclients-Obtainandrefreshconfigurationfromconfigurationprovider-Supportmultiplestrategies

Page 20: The Business Event Bus

Dizzit &BEB client library

3-2-3

ConfigurationProviderClient

Kafka JavaLibrary

BEBSerDe

BEBClientLibrary

Producerfactory

Consumerfactory

Page 21: The Business Event Bus

Dizzit &BEB client library

-Simplifysetupforconnectingclients-Obtainconfigurationfromconfigurationprovider

Page 22: The Business Event Bus

Dizzit &BEB client library

-Supportmultiplestrategies

Page 23: The Business Event Bus

Dizzit &BEB client library

-Supportmultiplestrategies

AT_MOST_ONCE vsAT_LEAST_ONCE

Page 24: The Business Event Bus

Dizzit &BEB client library

-Supportmultiplestrategies

AT_MOST_ONCE vsAT_LEAST_ONCE- Deliverynotguaranteed- Noduplication- Fast

- Deliveryguaranteed- Duplicationscanoccur- Slightly slower

Page 25: The Business Event Bus

Dizzit &BEB client library

-Supportmultiplestrategies

Page 26: The Business Event Bus

Dizzit &BEB client library

-Supportmultiplestrategies-Customretrypolicy

Page 27: The Business Event Bus

Dizzit &BEB client library

-Reloadconfigurationfromconfigurationprovider-Maintenancewindow

Client

Configuration provider

1

2

ClusterX3

Page 28: The Business Event Bus

Dizzit &Schema registry

-UsesApacheavro-Contractbetweenproducersandconsumers-Backwardscompatible-Morecontroloverschemagovernance- POSTonlyallowedbyBEBdevops team

Page 29: The Business Event Bus

Dizzit &Schema registry

-SchemaIDispresentineverymessage-Calltoschemaregistryismadepriorto(de)serialization-Examples(DEMO)

Page 30: The Business Event Bus

Dizzit &Topic catalogue

Page 31: The Business Event Bus

Dizzit &Secure setup

-Authentication&authorization-MutualSSL- ACLspertopic,perenvironment

Page 32: The Business Event Bus

Dizzit &Dockerize all components

-Docker imagepercomponent-BasedonConfluentplatform-Externalizedproperties-Docker registry

Page 33: The Business Event Bus

Dizzit &Dockerize all components

-Docker imagepercomponent-BasedonConfluentplatform-Externalizedproperties-Docker registry-Rancherfordeployment

Page 34: The Business Event Bus

Dizzit &Enough talking

http://static.tumblr.com/52679116680c197db232c3116ce98537/y07rdrp/1XJmt370e/tumblr_static_demotimeheader2.png

Page 35: The Business Event Bus

Dizzit &DEMO

AccountEntry

Producer

AlertProducer

DashboardBackend

DashboardFrontend

AccountEntriesAlerts

Page 36: The Business Event Bus

Dizzit &Future

-BEBinthecloud- Configurablemirrormaker

-Dynamicscaling-Automaticfailover-Easiertopicmanagement-EXACTLY_ONCEstrategy

Page 37: The Business Event Bus

Dizzit &Questions?