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.
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.
First of all, stop losing time, your time is a precious resource, and spend it on poor intellectual tasks will not make you a better professional. Even further, stop thinking you already learned enough about development and architecture. Open your mind to new things and be like a “sponge”, and try to absorb everything you can, even things that you think you never will gonna use. …
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.
Going directly to the problem, what we chose to do is very simple, instead of one unique service where we embedded the Quartz framework to execute all the business logic of the Job, we chose to split this service into two new…
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 maintenance. Then the project responsible decides to stop everything and we start asking ourselves, what’s wrong here? We follow all the guidelines to (THE CHOSEN MAGICAL ARCHITECTURE TYPE HERE) and our system keeps without performance? …
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.
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 each item is greater than zero. …
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 language is Java and I have a big experience with Spring. It’s only a preference, you can recreate all of this architecture using another program language. …
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.
Using the following link here install the WSL 2 on your Windows 10. The Microsoft tutorial is very simple and clean.
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 following command. Add the following command in the properties → shortcut…
By default, the Spring Boot library for Quartz doesn’t work correctly if you start up two instances of service in parallel. In this case, each one of the services starts the execution of the same jobs. The expected behavior is one of the instances is elected to execute the jobs, while the other ones waiting in the background, and the case of failure in the first service, another one is elected to assume the jobs.
In this article, I will show how to configure Spring Boot to use Quartz with service in parallel execution(cluster).
If you want too read about How to cluster effectively Quartz jobs, check this link. …
About