Riga Dev Days

Op 29, 30 en 31 mei vond voor de vierde keer de Riga Dev Days conferentie plaats in de hoofdstad van Letland, Riga. De conferentie is opgebouwd uit 1 dag workshops en 2 dagen sessies. Dit jaar zijn Rutger Gerritsen en Robbert Stevens van Indivirtual afgereisd naar Letland om de sessies op 30 en 31 mei bij te wonen.

Riga Dev Days opening

Op de Riga Dev Days conferentie kwamen er verschillende onderwerpen aan bod, waaronder Java, .Net, SQL, Blockchain en DevOps. Het volledige programma is terug te vinden op Riga Dev Days website. Van de door ons bijgewoonde sessies, hebben wij de meest interessante hieronder beschreven.

Pragmatic Architecture

Op de eerste dag gaf Ted Neward een sessie over de rol van een architect. Hier werd er toegelicht wat de architect binnen een team doet en wat zijn functie inhoudt binnen software ontwikkeling.

Een terugkerende omschrijving voor de rol Architect is “cannot code anymore”. Een architect zorgt voor duidelijkheid bij alle “ities”: Integrity, Simplicity, Reliability, Maintainability enzo. Hierin begeleidt de architect de developers, die gebruik maken van de architectuur, naar de weg van succes, door de juiste keuzes te maken.

Wat tijdens de sessie bovendien duidelijk werd, is dat een ieder eigenlijk al bezig is met een van de functies van een architect. Door de technieken die zich nu ontwikkelen te bestuderen en na te denken, is als het ware iedereen voor een deel als architect bezig.

Enabling Googley microservices with gRPC

Alex Borysov presenteerde gRPC met microservices. Hierin werd er een aantal voorbeelden gegeven over het feit dat er momenteel veel verkeer tussen microservices onderling wordt gecreëerd. Het gevaar hiervan is dat er voor de applicatie, door thread locking, een bottleneck gevormd kan worden. Om dit te verhelpen kan HTTP/2 protocol en Bi-directional streaming toegepast worden. Hierdoor kan het systeem een veelvoud van calls aan zonder dat er een enorme upgrade nodig is aan de hardware kant.

Met gRPC kan je Deadlines instellen. Een deadline is de tijd die de client maximaal wacht. Stel: een client zet een deadline van 400 milliseconden waarin een serie van micro-services een actie dient uit te voeren. Elke service zal controleren of de deadline is verstreken. Wanneer deze is verstreken zullen er verder geen services worden aangesproken. Vervolgens wordt er een DEADLINE_EXCEEDED exceptie gegooid en wordt de keten gestopt.

Geen techniek komt zonder nadelen en gRPC is hier geen uitzondering op. Zo kan gRPC niet worden ingezet voor Front-end libraries doordat die gebruik maken van REST en JSON. Hierdoor is het gebruik hiervan momenteel beperkt tot backend oplossingen. Bovendien is er momenteel weinig documentatie te vinden over gRPC.

Refactor to Reactive with Spring 5

Oleh Dokuka presenteerde middels een demo met een client en een service hoe oude Spring projecten refactored kunnen worden naar Spring 5. Een van de problemen die Dokuka tegen kwam was dat er maar een beperkte hoeveelheid threads beschikbaar was in het oude model. Hierdoor begaf het systeem zich als er sprake was van een groot aantal gebruikers. Een oplossing hiervoor is om te refactoren van pull (wachten tot de gebruiker iets vraagt) naar push (elke wijzigingen publiceren vanuit de service naar subscribers).

Het voordeel hiervan is dat je, in theorie, veel meer gebruikers aan kan. Echter als je nog achterliggende systemen hebt, is de kans op een “blocking IO” groot. Om dit te wijzigen zal je een pull-and-schedule systeem moeten maken. Hierdoor hoeft er niet voor iedere gebruiker constant naar een achterliggende systeem te gaan maar gebeurt het eens in de zoveel tijd. Bovendien zullen de wijzigen uit het systeem worden gedeeld aan alle subscribers.

Ter advies gaf Dokuka aan, dat je als developer niet alles in een keer moet willen doen. Het is beter om stap voor stap de hele stack om te zetten naar reactive. Hierdoor zal je systeem stabiel blijven.

Ten slot

Riga Dev Days 2018 was een geslaagde conferentie, met zeer interessante sessies! Zeker een aanrader voor in de toekomst.

Vērmanes Garden

Daarnaast hebben we nog kunnen genieten van de stad Riga. De conferentie werd midden in het centrum gehouden waar we hebben kunnen genieten van de Vērmanes Garden (oudste park van Riga) en de oude stad van Riga hebben kunnen ontdekken.

Het waren leuke en leerzame dagen!