Keycloak by default doesn’t supply a mapper to adding ‘external API call’ attributes to the JWT token, in this article I will show how to create a custom Mapper using Keycloak libraries and use this Mapper to add new attributes to the JWT token, using REST API.

Photo by Franck on Unsplash


In one of the last proof of concepts I had to create, I had the demand to add an attribute with the date of expiration of subscription to the JWT token, in the PoC I choose to use Keycloak, and to my surprise, Keycloak doesn’t support external call to add an attribute to…


When we are using MQTT for IoT communication it’s recommended to use TLS over the connections. TLS has two primary purposes: encrypting connection traffic and providing a way to verify that the peer can be trusted

In my case I use the RabbitMQ with the MQTT plugin enabled to support the MQTT protocol.

In this article, I will show how to create a docker image with RabbitMQ enabling MQTT plugin and TLS support.

Photo by John Salvino on Unsplash

Creating our own certificate

To create the certificate I found in GitHub the following repository, which supports the creating of a certificate using openssl.

Open your terminal and run the following…


The idea of this post began when a junior developer friend come to me and ask: “Hey Faita, what would you suggest to me (a junior developer) focus my studies?”

Also, I completed ten years of a career in the development area, and I started thinking about what I would like to say if I could back in time and talk to myself younger. I have some important tips and advice to talk about.

Some of the tips and advice could sound a little stupid, but let’s begin.

Photo by Jason Leung on Unsplash

Stop losing time

First of all, stop losing time, your time is a precious resource…


A time ago I wrote an article about how to use Quartz with Spring in clustered mode, but because of the active-passive cluster mode of Quartz, where only one node(containers, VM, put your type of infrastructure here) is responsible for handling the incoming “wake-ups” signals of Quartz, we had performance problems in our project, because only one heavy job was consuming all the node resources, resulting in a crash.

In that way, we chose to create a mixed solution using Quartz and Queues to solve this problem.

Photo by Lucian Alexe on Unsplash

The solution

Going directly to the problem, what we chose to do is very simple…

Stop creating new systems, try the tuning approach first


Let’s recreate a common scenario. My friend told me: another day in the company, everyone is called to an emergency meet and the following dialog begin:

Guys, our system again is showing problems of performance and we just decided. We need a new implementation of the whole system. We already did some studies about (CHOSE A MAGICAL ARCHITECTURE TYPE HERE) and we will follow with this kind of architecture. Get ready.

Everyone was surfing the hype, we started a one-year project and when our first delivery went to production and……… again, our system had performance problems and emergency shutdowns to…


Creating automatic unit tests is one of the most common tasks today in development day by day, but to create an effective unit test you should cover some specific aspects of testing. In this article, I will show you some of these aspects.

Photo by Joshua Hoehne on Unsplash

First things first

Let’s define a common scenario of business needs, a simple and very common Order Service, where our service will receive an object with the name of the client, the items of order, and the delivery address.

The ordering service must validate if the name, items, and delivery address are not empty and validate if the amount of…


Some time ago, a friend came to me and asked a question: “How could I create an architecture for a GPS Game, as Pokémon GO?”.

At that moment, I started to think about millions of aspects, and my mind was blown. But when I calmed down, I started to think about how we could accommodate this kind of architecture and the result of my thoughts are here in this article.

The only fixed premise that I had in mind has: “Use the reactive paradigm. …

Part I | Part II | Part III | Part IV | Part V


In our sixth and last part, of a series of articles about IoT architects, I will talk about the Gateway implementation, the integration with security server Keycloak and the reverse proxy using Nginx. At the end of the article, I will show how we can wake up our environment using Docker and docker-compose.


I chose the Spring Framework to create the architecture because my main program language is Java and I have a big experience with Spring. …

Part I | Part II | Part III | Part IV | Part VI


In our fifth part, of a series of articles about IoT architects, we will cover one of the most complex services in architecture, the Rule Service. For solving the problem of this service I chose to use a different architectural approach. In this specific service, I chose to use a little of DDD (domain-driven-design) with Hexagon Architecture using a high amount of test automation (unit testing — TDD), without forgetting about SOLID principles.


I chose the Spring Framework to create the architecture because my main program…

What is WSL 2

The Windows Subsystem for Linux lets developers run a GNU/Linux environment — including most command-line tools, utilities, and applications — directly on Windows, unmodified, without the overhead of a traditional virtual machine or the dual-boot setup.

Install WSL2 on Windows 10

Using the following link here install the WSL 2 on your Windows 10. The Microsoft tutorial is very simple and clean.

Install X-Server on Windows 10

Now with WSL 2 installed, we can download and install VcXsrv. In my opinion, seems to the best choice for X-Server in Windows

The process of installing is very simple(next, next, and finish).

After installation, create a new desktop shortcut and use the…

Rafael Faita

Software architect

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store