Kafka Utrecht Meetup

24
Real-Time Relevance Rabobank’s Event-driven Architecture using Apache Kafka Jeroen van Disseldorp Dizzit

Transcript of Kafka Utrecht Meetup

Real-TimeRelevance

Rabobank’sEvent-drivenArchitectureusingApacheKafka

JeroenvanDisseldorp

Dizzit

Dizzit &Who am IPersonal• 41years,married,fatheroftwo• LivinginRaamsdonksveer• Fanaticsquashplayer

Education• 1997MScComputerScience,Utrecht

• 2008MBARotterdamSchoolofManagement,ErasmusUniversity

Career• Starteddevelopingatage9• 19yearsinlargecorporations• Online,OpenSource,Architecture• PassionforProductDevelopment• StartedDizzitin2014• 3FTEtoday,lookingfornewdevs

Dizzit &Rabobank SensesPersonalDialogue

Proactiveandhelpout

Everyjourneyisapositiveexperience

Dizzit &Rabobank Mobile BankingApersonalfinancialenvironment• Manageyourpayments,personalfinanceandbookkeepingintuitivelyandeasily

• Notifiesyou,attherightmoment,thinksalong

Yourfinancialnetworkclose• Rabobankadvisors‘onetouchaway’

• Alwaysconnectedtoyourfinancialnetwork

• Collaborateandsharewithwhomeveryouwant

Usingyourpreferreddevice• Mobile,tablet,laptop,desktop• Brainortouchoperation• Car

Dizzit &Being relevant

Functionality

Alerting

ExtraInzicht 2.0

Up-to-datecustomerinfo

CustomerJourneyAnalytics

Dizzit &AlertingCaseCustomerswanttobeincontroloftheirfinances.Thisrequiresnotifyingtheminsituationsthatrequireaction.

Forinstance:• Balancebelowthreshold• Salaryreceived• Energybillcouldnotbepaid• Youspentmoreongroceriesthanyoushouldhave

ChallengeRabobankallowscustomerstodefinecustomnotificationrules.ButtheentireITlandscapeisundergoingrenewal.Howtodetectandprocesstherelevantfinancialevents?

Dizzit &

Time-driven

Request-driven

Event-driven

Initiator:TimeParticipants:specifiedsystems

Initiator:ClientParticipants:ClientandServer

Initiator:EventParticipants:open-ended

Data logistics mechanisms

Dizzit &Time-driven: Digestion

“Data warehouses”

Typically3timesperday

Batches

Fixedprocess

Slowbutpredictable

Dizzit &

“SOA”

Millionsoftimesperday

Individualcommands

Twoinvolvedparties

Requiresspecificintent

Request-driven: Movement

Dizzit &Event-driven: Nervous system

Millionsoftimesperday

Observations,signals

Context-dependant process

Autonomousmicroservices

“Business Event Bus”

Millionsofmessagesperday

Individualobservationsandsignals

Context-dependentprocessing

Networkofsystems

Dizzit &

Business Event

Aneventthatisimportantforacustomerand/orbusinessexpert

Dizzit &

Business Event Bus

Rabobank’sapplicationintegrationplatformthatenablesreal-timebusiness

Dizzit &

Business Event Bus

centralnervoussystemRabobank’sapplicationintegrationplatform

thatenablesreal-timebusiness

Dizzit &Before Business Event Bus

Producer1 Producer2 Producer3

Consumer1 Consumer2 Consumer3 Consumer4

Dizzit &Using Business Event Bus

Producer1 Producer2 Producer3

Consumer1 Consumer2 Consumer3 Consumer4

BusinessEventBus

Dizzit &FeaturesFunctionalityEventMessagingPublish/subscribemodelSchemaregistryforcorporatedatagovernanceStrictsecuritymodel

CharacteristicsExtremelyscalable,uptobillionsofmessagesperdayProducersandconsumersdon’tknoweachotherProducersandconsumersdon’thavetobeavailableatthesametimeAllowsbothreal-timeandbatchprocessing

Producer1 Producer2 Producer3

Consumer1 Consumer2 Consumer3 Consumer4

BusinessEventBus

Dizzit &Being relevant

Functionality

Alerting

ExtraInzicht 2.0

Up-to-datecustomerinfo

CustomerJourneyAnalytics

Dizzit &Extra Inzicht 2.0CaseRabobank’spersonalfinancemanagercategorizesincomeandexpenditures.

Examples:• Mortgage• Groceries• Clothing

ChallengeThecurrentsolutionprocessestransactionsinnightlybatches,soresultsarevisiblethenextdayonly.Thisdecreasestheservice’svalue.ThecurrentITsolutionistooexpensive.Acheapersolutionmustbefound,ortheservicewillbediscontinuedentirely.

Dizzit &Being relevant

Functionality

Alerting

ExtraInzicht 2.0

Up-to-datecustomerinfo

CustomerJourneyAnalytics

Dizzit &Up-to-date customer infoCaseBankingcustomersaregivenself-servicepageswithwhichtheyupdatetheirpersonalcontactinformation.

Forinstance:• Address• Email• Mobilephonenumber

ChallengeCRMcontainsthemastercustomerdata,butdoesnotsupporthigh-volumequeries.Thereforeothersystemsstorepersonalinformationaswell.Thesesystemsmustbenotifiedofanychangeacustomermakestohis/herpersonalinformation.

Dizzit &Being relevant

Functionality

Alerting

ExtraInzicht 2.0

Up-to-datecustomerinfo

CustomerJourneyAnalytics

Dizzit &Customer Journey AnalyticsCaseRabobankmonitorsvisitorsandcustomersacrosswebsiteandapptotrackeffectivenessandeaseofuse.

Examples:• Productpagesvisited• Salesprocessesstarted• Servicesused

ChallengeThecurrentsolutionsupportsonlyweb-basedchannels.Thismeanscustomersarenottrackedacrossotherinternalchannels(eg.bankoffices,callcenters,chats,API)andexternalchannels(eg.Facebook,Twitter,externalwebsites).

Dizzit &Making Rabobank relevantAlerting

200M+rules/day20Malerts/month

ExtraInzicht 2.025Mentries/day

10Mcategorizations/day

Up-to-datecustomerinfo150k+updates/day

CustomerJourneyAnalytics

1M+sessions/day

24