News

Soundbyte 320: En buiten is het koud …

20 november 2017

Buiten is het koud en guur, binnen is het lekker warm. Ik ben op zich een man van de seizoenen, dus … Aan het eind van de zomer, dan ben ik toe aan de winter (graag één meter sneeuw, aub). Aan het eind van de winter, dan mag het wel weer lekker warm zijn (graag de sneeuw in 1 nacht allemaal weg… geen paptoestanden). Nu ben ik weer helemaal toe aan de winter. De winterbanden liggen er weer onder, dus het kan … Kom maar op, koning winter. Sneeuw graag, geen regen…

 
We gaan naar het einde van het jaar. De kerst borrels/dineetjes staan alweer in de agenda. Heel erg leuk natuurlijk, maar dat betekent natuurlijk niet dat we rustig aan kunnen doen! Zowel in de gemeenteraad als ook in mijn normale werk zit de snelheid er nog goed in. In de raad hebben we net de programmabegroting afgehandeld, nu staan alle overgebleven raadsvoorstellen die ook dit jaar nog moeten worden behandeld op ons te wachten. Volle bak…
 
Maar goed dat we dan ook nog iets aan onze hobby (<knipoog>) kunnen doen: de IT! Toch is dat wel zo, want het is altijd leuk om je te mogen verdiepen in nieuwe dingen. En dat nieuwe ding is InformationGrid… Bij elke Luminea bekend natuurlijk…
 
Voor Equestic maakten we tot nu toe gebruik van een relationele database op de backend, zoals we dat bij zovele andere projecten ook doen! Toch is Equestic hier wel bijzonder. De authorisatie (welk paarden mag je berijden en bekijken, en welke ritten van deze paarden mag je zien) wordt namelijk bepaald door de data in de database zelf. Als gebruiker krijg je toegang tot een paard voor een bepaalde periode en dan mag je enkel de ritten zien die dat specifieke paard in die periode heeft gedaan. Dat klinkt heel makkelijk, maar het betekent wel een heleboel SQL statements en JOINs voor je de juiste gegevens bij elkaar hebt. Soms wel honderden voor één scherm. 
 
Je kunt je voorstellen dat dit bij heel veel paarden en nog veel meer ritten een behoorlijke performance bottleneck kan zijn! En dat zien we dan in bepaalde gevallen ook al gebeuren! Dat kan natuurlijk niet. Het zou toch zoveel makkelijker zijn als we bij het daadwerkelijke opslaan van de ritgegevens alvast alles klaar kunnen zetten voor de leesacties door gebruikers. Als we in plaats van honderden SQL statements met JOINS, nu ineens slechts een paar queries hoeven te doen zonder ingewikkelde JOINs (we hebben namelijk alles al klaar gezet voor de leesopdracht), dan blijft het systeem performen! Iedereen blij…
 
En dat kunnen we doen met InformationGrid. We gaan daar uitgebreid gebruik maken van event sourcing in combinatie met document en graph databases. Bij elke save zullen er projecties per gebruiker up-to-date worden gehouden, die vervolgens worden gebruikt voor het lezen. Het daadwerkelijke opslaan, zal offline gebeuren via events, dus ook daar geen vertraging. We hoeven we niet te grasduinen in de graphen en documenten in de databases om de juiste gegevens op te halen, want dat hebben we bij het opslaan al in de projecties geregeld. In plaats van honderden SQL statements en JOINs, nu slechts een handjevol (liefst een enkele) queries. 
 
De eerste tests zijn intussen geweest (die zijn zeer positief) en we zijn volop bezig met bouwen. Daar hoort ook meteen een nieuwe UI voor de backend bij en die gaan we maken in Angular 4! Lekker bezig…
 
Oh ja… nog even een stukje voortgang over Devoxx4Kids! Vandaag hebben Vivian en ik een gesprek met de gemeente Enschede en een groot IT bedrijf in Enschede om samen de Enschedese variant van Devoxx4Kids te organiseren. De planning is dat deze zal gaan plaatsvinden in Januari! We komen daar op terug…
 
In plaats van een liedje, nog even het filmpje van DevoxxKids – the Luminis edition welke in juli van dit jaar plaatsvond:
 
 
 
 
 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *