Latest / M365.FM – Microsoft 365, Copilot & AI podcast in het Nederlands / Microsoft Graph change notifications uitgelegd: realtime in plaats van polling (AI-nasynchronisatie)
Transcript
- 0:00Klaar voor 10 dagen vol Microsoft 365, Copilot, AI, Azure en de mensen die de toekomst van werk vormgeven?
- 0:07Deze januari is M365, kom terug en we pakken het grootser aan.
- 0:12Doe mee voor live sessies, praktijkdemos en bruikbare kennis van MVPs en experts van over de hele wereld.
- 0:18Geen algemene presentaties, geen eindeloos jargon.
- 0:21We pakken de echte uitdagingen aan Copilot Studio, AI Agents, Fabric, Beveiliging, Governance en Automatisering.
- 0:29Of je nu IT-professional, ontwikkelaar of business leader bent, er zijn sessies speciaal voor jou.
- 0:35Met 10 volledige dagen kun je diverse technologieën verkennen en in contact komen met een wereldwijde community.
- 0:40Kijk live mee en neem praktische inzichten mee terug naar je organisatie.
- 0:44Januari 2027, 10 dagen, 1 Microsoft Community.
- 0:49De registratie is nu geopend.
- 0:51Ga naar m365.com.net en verzeker je vandaag nog van een plek.
- 0:56Dat is m365.com.net.
- 1:00Meld je nu aan op m365.com.net, dan zien we je live in januari.
- 1:04Het onderwerp van vandaag is er een waar bijna iedereen die met Microsoft 365 bouwt wel eens van heeft gehoord.
- 1:10Maar de meesten begrijpen niet echt hoe het achter de schermen werkt.
- 1:13Ik heb het over Microsoft Graph wijzigingsmeldingen.
- 1:15Wat zijn ze precies en waarom zou ik je interesseren?
- 1:18Laten we beginnen bij het probleem dat ze oplossen.
- 1:20Stel je voor dat je een app bouwt die moet weten wanneer er iets verandert in Microsoft 365.
- 1:23Misschien komt er een nieuwe e-mail binnen, werkt iemand een bestand bij een SharePoint of wordt er een nieuwe gebruiker toegevoegd aan je bedrijfsmap.
- 1:29Hoe komt je app daarachter?
- 1:31Dit is het punt, de oude manier is pollen.
- 1:33Je app stuurt elke paar minuten een verzoek naar Microsoft Graph en vraagt, is er iets nieuws sinds de laatste keer?
- 1:38Als er niets is veranderd, heb je een verzoek verspild.
- 1:40En als er vijf seconden na je controle iets verandert, weet je dat pas bij de volgende cyclus.
- 1:44Je controleert of te vaak wat middelen verspilt en het risico op fratteling met zich meebrengt, of te zelden, waardoor je dingen mist.
- 1:50Microsoft blokkeert apps die te agressief pollen zelfs.
- 1:53Ontwikkelaars noemen het de Graph gevangenis, waarbij je app een tijdje wordt geblokkeerd vanwege te veel verzoeken.
- 1:58Dus de vraag is, is er geen betere manier?
- 2:01Wat als, in plaats van dat je app constant vraagt of er iets nieuws is, het systeem je gewoon laat weten wanneer er iets is veranderd?
- 2:06Dat is precies wat wijzigingsmeldingen doen.
- 2:09Wat zijn Microsoft Graph wijzigingsmeldingen?
- 2:11Hier is de simpelste definitie.
- 2:13Met wijzigingsmeldingen kan je app direct reageren op gebeurtenissen in Microsoft 365 zonder constant te controleren.
- 2:19Zie het als een bewegingssensor op je brievenbus.
- 2:22In plaats van elk uur langs te lopen om te kijken, installeer je een sensor die je een seintje geeft zodra haar post arriveert.
- 2:27Je stopt met het verspillen van tijd aan lege controles en mist nooit meer een bezorging.
- 2:30Dat is wat wijzigingsmeldingen voor je app betekenen.
- 2:32Wanneer er iets verandert, zoals een nieuwe e-mail, een bijgewerkt bestand of een agendaafspraak, stuurt Microsoft Graph automatisch een melding naar uw app.
- 2:39Polling is niet nodig. Dit systeem bestaat uit twee onderdelen, een abonnement en een melding, die samenwerken.
- 2:45Met het abonnement vertelt u Microsoft Graph wat u in de gaten wilt houden.
- 2:49U geeft bijvoorbeeld aan, laat het me weten wanneer er een nieuw bericht in deze inbox binnenkomt.
- 2:53Of, geef een seintje als er een bestand wordt bijgewerkt in deze SharePoint bibliotheek.
- 2:56U registreert uw interesse en Graph noteert dit.
- 2:58De melding is wat er daarna gebeurt.
- 3:00Wanneer de wijziging plaatsvindt, stuurt Graph een HTTP-post naar een eindpunt dat u opgeeft.
- 3:04Uw app ontvangt die post, weet dat er iets is gebeurd en kan dan beslissen wat er moet gebeuren, zoals nieuwe gegevens ophalen, een workflow activeren of een database bijwerken.
- 3:13Dit is het belangrijkste verschil met polling.
- 3:15Meldingen worden automatisch afgeleverd.
- 3:17Uw app hoeft er niet om te vragen, het systeem plus de informatie zodra het gebeurt.
- 3:20Dat is de magie ervan.
- 3:21Microsoft Graph ondersteunt wijzigingsmeldingen voor een breed scala aan resources.
- 3:26Berichten, afspraken, contactpersonen, gebruikers, groepen, bestanden, teamsberichten, beveiligingswaarschuwingen.
- 3:31Bijna alles wat u via Graph kunt benaderen, kan worden gecontroleerd op wijzigingen.
- 3:34Maar hoe zet u dit eigenlijk op?
- 3:35Hoe vertelt u Graph wat er gevolgd moet worden en waar de meldingen naartoe moeten?
- 3:38Een abonnement maken, Graph vertellen wat er in de gaten gehouden moet worden.
- 3:40Dus, wat is een abonnement?
- 3:42Het is simpelweg een registratieverzoek.
- 3:43Uw app zegt, laat het me weten wanneer dit gebeurt.
- 3:46En u verstuurt dat verzoek naar de Microsoft Graph API.
- 3:48Graph slaat het op en wacht af.
- 3:49U moet in dat verzoek een paar details aan Graph doorgeven.
- 3:52Ten eerste de resource die u wilt volgen, het pad naar de gegevens.
- 3:55Bijvoorbeeld users, als u wijzigingen in gebruikersaccounts wilt monitoren.
- 3:59Of met mailfolders, inbox, messages, als u op de hoogte wilt blijven van nieuwe e-mails.
- 4:03Vervolgens het type wijziging.
- 4:05Wilt u weten wanneer er iets wordt gemaakt, bijgewerkt of verwijderd.
- 4:08U kunt er één kiezen of ze alle drie opvragen.
- 4:09Ten derde de notificatie URL.
- 4:12Dit is het adres van uw eindpunt, de plek waar Graph de melding naartoe moet sturen als er iets gebeurt.
- 4:15Dit moet een publiek toegankelijk HTTPS eindpunt zijn.
- 4:18Daar zijn geen sluiproutes voor.
- 4:19Ten vierde de verloopdatum.
- 4:21Abonnementen duren niet eeuwig.
- 4:23U kiest een toekomstige datum en tijd waarop het abonnement verloopt.
- 4:25Maar let op, verschillende resources hebben verschillende maximale levensduur.
- 4:28Outlook berichten kunnen tot zeven dagen geldig blijven.
- 4:30Teams chatberichten hebben een limiet van drie dagen.
- 4:32SharePoint bestanden kunnen ongeveer dertig dagen blijven bestaan.
- 4:35Aanwezigheidsinformatie?
- 4:36Dat verloopt na slechts één uur.
- 4:37Hier is een concreet voorbeeld.
- 4:39Stel dat je wilt weten wanneer iemand in je bedrijf zijn functietitel wijzigt.
- 4:42Je maakt een abonnement aan voor de resource users met als wijzigingstype updated.
- 4:46Je koppelt dit aan je notificatie URL en stelt de verloopdatum over een paar dagen in.
- 4:50Wanneer iemand zijn profiel in Azure AD bijwerkt, stuurt Graf een post naar je appoint met een notificatie payload.
- 4:55Die payload bevat de idee van de gebruiker en vertelt je wat er is gewijzigd.
- 4:58Je app kan daar op actie ondernemen, een hour systeem bijwerken, een melding sturen naar de manager, wat je maar nodig hebt.
- 5:03Graf reageert op je abonnementsverzoek met een abonnementsidee.
- 5:06Die idee heb je later nodig om het abonnement te beheren, vernieuwen, bijwerken of verwijderen.
- 5:11Maar dit is belangrijk. Voordat Graf notificaties gaat sturen, moet bevestigd worden dat je het point echt actief is en luistert.
- 5:17Daarvoor is een handshake vereist. De handshake validatietoken uitgelegd.
- 5:21Wanneer je een abonnement aanmaakt, vertrouwt Microsoft Graf je het point niet zomaar blindelings.
- 5:26Het stuurt eerst een testping, een verificatieverzoek.
- 5:29Die ping bevat een validatietoken, een willekeurige reekstekens.
- 5:32Je het point moet die token opvangen en binnen 10 seconden als platte tekst terugsturen.
- 5:36Zie het als een bezorger die aanbelt om te controleren of je thuis bent voordat hij een pakket achterlaat.
- 5:41Als niemand open doet, laat de bezorger niets achter.
- 5:43Hetzelfde geldt hier. Als je het point de validatietoken niet terugstuurt, zou Graf er geen notificaties naartoe sturen.
- 5:49Het antwoord moet platte tekst zijn, geen JSON of XML, gewoon de ruwe tokenreeks.
- 5:53Kies je het verkeerde formaat, dan mislukt de handshake.
- 5:56Het is een beveiligingscontrole. Het bewijst dat je het point actief is, luistert en onder jouw controle valt.
- 6:00Het voorkomt dat iemand een abonnement koppelt aan een URL die niet van hen is, in de hoop notificaties voor iemand anders te onderscheppen.
- 6:06Geen handshake betekent geen abonnement.
- 6:08Graf wijst het aanvraagverzoek af en je krijgt een foutmelding.
- 6:11Je herstelt je het point en probeert het opnieuw.
- 6:13Zodra de handshake slaagt, is het abonnement actief en beginnen de notificaties te stromen.
- 6:17Maar hier is het punt. Ze stromen niet voor eeuwig.
- 6:20De verbinding in stand houden.
- 6:22Abonnementsverlenging.
- 6:23Elk abonnement heeft een verloopdatum.
- 6:25Die stel je in wanneer je het aanmaakt.
- 6:27Graf dwingt dit af.
- 6:28Wanneer die dag aanbreekt, stopt het abonnement.
- 6:30Geen notificaties meer.
- 6:32Zie het als een parkeermeter.
- 6:34Je voert de tijd in en wanneer deze op is, verloopt de meter.
- 6:37Verschillende resources hebben verschillende limieten.
- 6:40Outlook berichten kunnen 7 dagen lopen.
- 6:42Teams chatberichten 3 dagen.
- 6:43Sharepoint bestanden ongeveer 30 dagen.
- 6:46Aanwezigheidsinformatie slechts 1 uur.
- 6:47Je app kan dus niet zomaar een abonnement aanmaken en het daarna vergeten.
- 6:50Je hebt een proces nodig dat het in leven houdt.
- 6:52Vernieuwen is eenvoudig.
- 6:53Stuur een patchverzoek met het abonnements-idee.
- 6:56Voeg een nieuwe verloopdatum toe.
- 6:57Doe dit voordat de huidige verloopt en Graf het abonnement verlengt.
- 7:01Dit is de best practice die ik aanbeveel.
- 7:03Controleer de verloopdatum bij elke melding die je ontvangt.
- 7:06Als het bijna verloopt, zeg binnen een dag, vernieuw het dan direct.
- 7:09Op die manier heb je geen aparte achtergrondtaak nodig om abonnementen te beheren.
- 7:13Microsoft heeft ook levenscyclusmeldingen toegevoegd.
- 7:15Deze waarschuwingen informeren je voordat een abonnement verloopt.
- 7:18Ze vertellen je wanneer je abonnement afloopt of wanneer je toegangstoken opnieuw moet worden geautoriseerd.
- 7:22Meld je hierop aan, zodat je app kan vernieuwen voordat er iets misgaat.
- 7:25Maar wat als je eindpunt uitvalt of je een verlengingsperiode mist?
- 7:28Dat is waar het vangnet om de hoek komt kijken.
- 7:31Wanneer dingen misgaan, betrouwbaarheid en vangnetten.
- 7:34Je abonnement is actief, je eindpunt luistert, meldingen stromen binnen.
- 7:37Alles ziet er goed uit, maar wat gebeurt er als er iets stuk gaat?
- 7:40Misschien is je eindpunt offline voor onderhoud.
- 7:42Een netwerkprobleem blokkeert een melding of je mist simpelweg de verlengingsperiode en het abonnement verloopt.
- 7:46Dit soort dingen gebeurt.
- 7:48De vraag is, hoe herstel je dit?
- 7:49Microsoft Craft verwacht dat je webhoek eindpunt snel reageert binnen drie seconden.
- 7:53Als het langer duurt, markeert Craft het als traag.
- 7:55Als meer dan 10% van je reacties langer dan drie seconden duurt in een periode van 10 minuten, vertraagt Craft je meldingen met 10 minuten.
- 8:01Het verstuurt dan slechts een klein monster om te kijken of je hersteld bent.
- 8:04Het wordt erger.
- 8:05Als meer dan 15% van je reacties de time-out van 10 seconden overschrijdt, markeert Craft je eindpunt als verwijderd.
- 8:10Meldingen stoppen volledig voor 10 minuten.
- 8:12Ze zijn weg.
- 8:12Je kunt ze niet meer terugkrijgen.
- 8:14Je eindpunt moet dus snel en betrouwbaar zijn.
- 8:16Dat betekent niet dat je elke melding in minder dan drie seconden moet verwerken.
- 8:19Bevestig de ontvangst snel met een 202 accepted reactie en verwerk de melding daarna asynchroon.
- 8:24Zet het in de wachtrij.
- 8:25Handel het later af.
- 8:27De sleutel is die snelle reactie.
- 8:28Zelfs met een perfect eindpunt kan er nog steeds iets misgaan.
- 8:31Abonnementen verlopen.
- 8:32Netwerkstoringen komen voor.
- 8:33Microsoft Craft zelf kan in zeldzame gevallen een melding missen.
- 8:36Daarom heb je een vangnet nodig.
- 8:38Delta Queries.
- 8:39Zie het op deze manier.
- 8:40Wijzigingsmeldingen zijn het brandalarm.
- 8:42Ze vertellen je dat er nu iets gebeurt.
- 8:43Delta Queries zijn de sprinklerinstallatie.
- 8:45Ze vangen alles op wat het alarm heeft gemist.
- 8:47Ze werken samen.
- 8:48Meldingen geven je realtime bewustzijn.
- 8:50Delta Queries geven je een compleet beeld dat je op elk moment kunt afstemmen.
- 8:53Het aanbevolen patroon is eenvoudig.
- 8:55Gebruik wijzigingsmeldingen voor onmiddellijke notificatie.
- 8:57Voer periodiek een Delta Query uit.
- 8:59Misschien elke paar uur of eenmaal per dag om alles wat er doorheen is geglipt op te vangen.
- 9:02Op deze manier mis je nooit permanent een wijziging.
- 9:04Zelfs als een melding verloren is gegaan of een abonnement is verlopen.
- 9:07Praktische toepassingen.
- 9:09Wat je kunt bouwen.
- 9:10Dus, wat maakt dit eigenlijk mogelijk?
- 9:12Ik neem je mee door enkele echte voorbeelden.
- 9:13Neem Our Automatisering.
- 9:15Stel je voor dat er morgen iemand bij je bedrijf komt werken.
- 9:17Op het moment dat Entra ID een nieuwe gebruiker aanmaakt, wordt er een wijzigingsmelding verstuurd.
- 9:21Je app haalt het profiel op en maakt accounts aan in je oude platform voor urenregistratie en gebouwtoegang.
- 9:25Allemaal binnen enkele seconden.
- 9:26Geen polling, geen vertragingen.
- 9:28Voor beveiligingswaarschuwingen.
- 9:29Stel dat het account van een gebruiker wordt uitgeschakeld.
- 9:31Een wijzigingsmelding activeert een workflow die controleert op verdachte wijzigingen en je beveiligingsteam waarschuwt.
- 9:36Voorheen moest je elke paar minuten polen.
- 9:38Nu gebeurt het direct.
- 9:39Contentverwerking werkt op dezelfde manier.
- 9:41Wanneer een bestand in een SharePoint documentbibliotheek belandt, wil je weten of het een factuur is.
- 9:45De melding vertelt je dat er een nieuw bestand is.
- 9:47Je app haalt het op, laat het door AI klassificeren en stuurt het naar het juiste onkostensysteem.
- 9:51Allemaal automatisch.
- 9:52Real-time dashboards laten je analyses zien terwijl ze gebeuren, niet van uren geleden.
- 9:57Wijzigingsmeldingen synchroniseren dataverse direct met Fabric.
- 9:59Je Power BI dashboards worden bijna in real-time bijgewerkt.
- 10:02Dit is er een die ik interessant vind.
- 10:04Copilot Connectors.
- 10:05Microsoft voegt real-time synchronisatie toe via webhooks, zodat AI agents reageren zodra gegevens veranderen.
- 10:10Wanneer een klantrecord in Dynamics 365 wordt bijgewerkt, genereert een copilot-agent direct een follow-up, zonder wachttijd.
- 10:17Al deze voorbeelden hebben één ding gemeen.
- 10:20Voor wijzigingsmeldingen bouwde je geplande taken die elk uur of elke dag polden.
- 10:24Het werkte, maar was traag, inefficiënt en kwetsbaar.
- 10:28Wijzigingsmeldingen draaien dat model om.
- 10:29Real-time, event-driven, direct.
- 10:32Het juiste bezorgkanaal kiezen.
- 10:34Niet elke app heeft dezelfde bezorgmethode nodig.
- 10:36Laten we naar je opties kijken.
- 10:37Webhooks zijn het eenvoudigst.
- 10:39Graph stuurt een HTTP-post naar je eindpunt.
- 10:41Jij verwerkt deze en gaat door.
- 10:43Voor een laag tot gemiddeld volume, zeg een paar honderd meldingen per uur, werkt dat prima.
- 10:46Maar wat als je iets groters bouwt?
- 10:48Duizenden meldingen per seconde kunnen een enkel eindpunt overbelasten.
- 10:51Je hebt iets krachttigers nodig.
- 10:53Event Hubs kan miljoenen gebeurtenissen per seconde verwerken.
- 10:56In plaats van dat Graph meldingen één voor één verstuurd, worden ze naar een hub gestuurd.
- 10:59Je app leest op eigen tempo, met een laag risico op overstroming.
- 11:02Dit is voor grote bedrijfscenario's zoals duizenden SharePoint sites of miljoenen mailboxen.
- 11:06En dan is er nog Event Grid, de serverloze optie.
- 11:09Het verstuurt meldingen naar Azure Functions of Logic Apps en handelt automatisch Retreats
- 11:13en Deadlettering af.