Bij het ExamenAdviesBuro (EAB) ben ik verantwoordelijk geweest voor het in eigen beheer nemen van een maatwerkoplossing, waarbij ook het interne development team nog moest worden opgezet. De applicatie is jaren buiten de deur ontwikkeld, maar gezien de gewenste versnelling in ontwikkeling van nieuwe functionaliteiten heeft EAB besloten verdere ontwikkeling binnenshuis te doen. Het is ons gelukt een voor ons totaal onbekend systeem in beheer te nemen en de omgeving zodanig te stabiliseren dat er naar tevredenheid met de bestaande applicaties gewerkt kon worden. Op deze applicatie hebben we daarna bugfixes gedaan en nieuwe features ontwikkeld.

Parallel daaraan heb ik een migratie ingezet naar een microservice gebaseerde architectuur. De applicatie was verworden tot de welbekende monoliet, waar registratie, ordering, facturering, planning en examinering door elkaar liepen. Deze domeinen hebben we uit elkaar getrokken en per onderdeel een implementatie keuze gemaakt: make or buy, CRUD of CQRS, etc. Aan het einde van de eerste fase (meerdere iteraties) hadden we een HippoCMS site die middels REST de voor een bestelling benodigde gegevens uit verschillende backends haalde. De ene backend (locatie planning) hebben we middels Spring Boot in combinatie met het Axon framework (CQRS) gemaakt, de andere middels een Spring Boot / Hibernate oplossing. De individule services werden als Docker images verpakt en draaien in een Docker Swarm cluster. Mijn rol in dit geheel was ook om de rest van het team hierin mee te nemen en wegwijs te maken in de manier van ontwikkelen. Vooral CQRS en asynchrone communicatie vereist een schakelen van denkwijze voor menig developer.

Java 8, Wicket, Spring, Hibernate, MySQL, ActiveMQ, Spring Boot, Axon Framework (CQRS) Docker, React, RabbitMQ, Spring Cloud, MySQL, Mongo, HippoCMS