Microservices & Vaadin

During the last months, I've been researching and experimenting with microservices and Vaadin applications. My goal was to test Vaadin "compatibility" with some of the techniques associated with microservices. In short, Vaadin is as compatible with microservices as any other component-based web framework. Moreover, many of the challenges you would face when implementing microservices with Vaadin you would face with any JavaScript/HTML framework.

Microservices bring advantages such as independent development and deployment of services, but they come with a cost, mainly, an increase in complexity, brilliantly explained by Dave Kerr in his article The Death of Microservice Madness in 2018, a highly recommended read for everyone evaluating microservices. One of the key technical challenges with microservices which is related to web frameworks is how to create a "mash-up" UI that combines two or more web applications.

Ignoring the fact that microservices embrace technology independence to some extent (that is, teams can decide which technologies to use, including web frameworks), I was interested in how to render two independently deployed Vaadin applications into one single page in the browser. It turned out, again, the challenges I faced were almost the same I would have faced with any other web framework, especially, dealing with CSS and JavaScript collisions and HTTP session management.

I was able to develop an application using Spring Boot with Spring Cloud to show a web page with a CRUD UI on the left and a Twitter feed on the right, both developed with Vaadin:

Running this application requires starting at least 7 processes, 3 orchestration services, 1 back-end service, and 3 web applications:

You can find detailed information about my experiment in this series of articles:

  1. Getting Started with Microservices
  2. Microservices: Service Registration and Discovery
  3. Microservices: Externalized Configuration
  4. Microservices: Consuming stateless services from Vaadin UIs
  5. Microservices: Fault Tolerance
  6. Microservices: UI composition
  7. Microservices: High availability
  8. Microservices: Health monitoring
March 28, 2018


Popular Posts

Building a Kubernetes cluster on Raspberry Pi (with automation)

Some months ago, I was lucky enough to get a bunch of Raspberry Pi minicompute…

What is a Database Proxy?

A proxy is a server software, typically installed in a separate machine, that …

ChatGPT as a MariaDB database

ChatGPT is truly impressive. You can instruct it to do all sorts of things whe…

Recent Comments

Contact Me