At ExamenAdviesBuro (EAB), I was responsible for taking a custom solution in-house, which also involved setting up the internal development team. The application had been developed externally for years, but given the desired acceleration in the development of new functionalities, EAB decided to move further development in-house. We managed to manage a system that was completely unfamiliar to us and stabilized the environment to the point where we could work satisfactorily with the existing applications. We then implemented bug fixes and new features in this application.

Parallel to this, I initiated a migration to a microservices-based architecture. The application had become a familiar monolith, where registration, ordering, invoicing, scheduling, and examinations were intertwined. We separated these domains and made an implementation choice for each component: make or buy, CRUD or CQRS, etc. At the end of the first phase (several iterations), we had a HippoCMS site that retrieved the data required for an order from various backends using REST. We built one backend (location planning) using Spring Boot in combination with the Axon framework (CQRS), and the other using a Spring Boot/Hibernate solution. The individual services were packaged as Docker images and run in a Docker Swarm cluster. My role in this process was also to guide the rest of the team and familiarize them with the development approach. CQRS and asynchronous communication, in particular, require a shift in mindset for many developers.

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

Hi, I’m Martijn