Service Bus Messages en Event Grid / Hub… Het verschil!

Azure Service Bus

Een van de vragen die het meest voorbij zie of hoor komen als we het over messaging in Azure hebben is de volgende:

Leuk, maar wat is nu het verschil tussen een service bus en een event hub?

(iemand, op welke conferentie dan ook)

En dat is eigenlijk een hele goede vraag. Er zijn namelijk wel degelijk verschillen maar die zijn niet heel erg duidelijk als je zou mogen verwachten. Veel mensen worstelen dan ook met deze twee en zien niet duidelijk wanneer ze nu wat moeten gebruiken.

Toch is het niet zo ingewikkeld. Zeker niet als je ontwikkelaar bent of bent geweest. Immers, in de meeste programmeertalen gebruik je deze twee constructies continue alleen noem je ze (bijna) anders.

Ik ga er even vanuit dat je ooit eens een keer een applicatie gebouwd hebt. Stel, we maken een systeem om een hotel boeking te versturen naar een back-end systeem. Denk nu niet aan messages, queues, subscriptions en wat niet meer. Denk even puur aan de front-end. Dat kan web based zijn of een good-old Windows Forms applicatie: dat maakt niet uit.

We hebben een scherm. Dat zie er ongeveer zo uit:

Mijn geweldig booking site!

Ok. User Interface Design is niet mijn sterkste punt. Maar dat maakt even niet uit. We hebben dit soort schermen ontelbare keren eerder gebouwd.

Na het maken van de front-end moeten we de logica gaan inbouwen. Dat betekent:

  1. De gebruiker klikt op “Book it now”
  2. We verzamelen de data uit de 3 textboxen (name, address en city)
  3. We versturen die data naar onze back-end

Simpel niet waar? En dat is het inderdaad ook. Want:

  1. De klik op een button is een event.
  2. De data die we naar de back-end versturen is de Service bus message

Een button genereert heel veel events. De mouse-over, mouse-leave, click, mouse-down, mouse-up, key-press enzovoorts. De bouwer van de button class weet niet waar je die button voor wilt gebruiken, dus je hebt de beschikking over alle mogelijke events. Wat je er mee doet, moet jij als ontvanger zelf weten. Dat zijn events: kleine notifications waar een ontvanger al dan niet iets mee wil gaan doen.

De data die verstuurd wordt door het scherm (onze gegevens) zijn een message. De verzender wil in dit geval wel degelijk dat er iets met die data gebeurt! Er moet immers een boeking gemaakt worden. De data die verstuurd wordt in die message is dan ook meestal groter dan wat er met een event verstuurd wordt. Ook is het zo dat er meestal maar een ontvanger van de message is, terwijl events meerdere ontvangers kunnen hebben.

En meer valt er eigenlijk niet over te zeggen. Messages zijn groter en de verzender weet wat hij van de ontvanger verwacht (er moet een boeking gemaakt worden). Events zijn meer notificaties dat er iets gebeurt is.

Er is natuurlijk veel overlap tussen die begrippen. Het is niet altijd 100% duidelijk wanneer iets nu een message zou moeten zijn of een event. Er is een groot grijs gebied. In dat geval raad ik je aan om je gezonde verstand te gebruiken en consistent in je ontwerp te blijven. Meestal zit je dan wel goed.

Dus… nu weet je het. Events zijn net als mouse-clicks in je systeem, messages zijn operations in je systeem. That’s it.

Gepubliceerd door Dennis Vroegop

Passionate Azure Cloud Solutions Architect. I am a enthusiastic guitar player (though not as good at it as I'd like to be) and in my daytime job I teach software developers to be better at their job. Married to my wonderful wife Diana with whom I try to raise our daughter Emma.

Geef een reactie

Vul je gegevens in of klik op een icoon om in te loggen.

WordPress.com logo

Je reageert onder je WordPress.com account. Log uit /  Bijwerken )

Twitter-afbeelding

Je reageert onder je Twitter account. Log uit /  Bijwerken )

Facebook foto

Je reageert onder je Facebook account. Log uit /  Bijwerken )

Verbinden met %s

Deze site gebruikt Akismet om spam te bestrijden. Ontdek hoe de data van je reactie verwerkt wordt.

%d bloggers liken dit: