May 3, 2024

Using Exponential Backoff Retry strategy in Quarkus

One of the most important parts when implementing a microservice architecture is to think about resilience strategies in your applications. How will your service behave after failures? There are a few very well known patterns to ensure the resillience of your services like Circuit Breakers, Fallbacks, Timeouts and Retries. In this post, we’ll focus on the Exponential Backoff Retry pattern in Quarkus services.

[ Java, Quarkus ] Read More
February 10, 2023

Introduction to YAMLPath

I want to introduce YAMLPath, a Java DSL framework for reading and manipulating YAML documents fragments. I created this project from scratch and I’m proud of it because it brings a world of possibilities when you need to read fragments of YAML resources or/and manipulate a bunch of YAML files.

[ Java, YAMLPath ] Read More
May 26, 2021

Quarkus QE Test Framework

In my entire career, there is something I’ve always been very passionated about: frameworks. I think everything started the first time I met the Spring ecosystem or maybe when I was a .NET developer. Either way, I’ve always enjoyed really curated APIs and the usage of well known patterns to integrate different components. And that’s also why I was so excited when I joined in the Quarkus project as Quality Engineer.

[ Quarkus ] Read More
March 16, 2021

Exclude Tests by Maven Profile

There is a super useful tip in Maven to fully overwrite plugin configuration by Maven profiles using combine.self. In the following example, we’ll see how we can exclude tests depending on the Maven profile we’re running:

[ Maven ] Read More
March 16, 2021

Docker Maven Plugin Introduction

Most of the times our services need to be integrated to other services or third party components like databases. For example, our service might need a database instance to store or read books. But how can we verify our services logic? In this post, we’ll see how we can use the Docker Maven plugin to start up third party services and how we can integrate it with our integration tests.

[ Maven ] Read More
February 7, 2021

Java EE Basics

I’ve enrolled in a full course learning path that requires certifications to achieve. The first one is about Programming in Java EE. Moreover, sometimes, It’s good to recap with some basics concepts around something you’re already familiar with. In the end, you always will learn something you have missed or forgotten.

[ Java ] Read More
November 10, 2020

Quarkus Test Framework

Quarkus is the most recent popular framework for Java applications aimed to be the reference for cloud-native applications. Its competitor is none other than the all-powerful Spring Boot. So, Quarkus has a long path to engage users and for achieving this, the developer experience that needs to be rather than excellence and joyful. In this direction, this post is covering how we can test Quarkus apps as developers.

[ Quarkus ] Read More
September 9, 2020

Quarkus with React frontend secured with Keycloak

I remember those days when I was working as fully frontend developer, feeling really confident in CSS, JS, HTML, jQuery… I’m aware of that it sounds really old nowadays! As backend developer, I always kept an eye in how the frontend frameworks evolved: Angular, React, Vue.js… Also I played a bit with Angular 2.x and 4.x, and indeed I quite enjoy it a lot. Now, let’s do something with React!

[ Keycloak, Quarkus ] Read More
June 22, 2020

Add Git Hooks in Business Central

As we introduced the jBPM architecture in [this post], it mainly consists in two components:

  • Business/Decision central as designer/management tools of our business processes
  • Kie Server as execution servers
[ jBPM ] Read More
June 10, 2020

Extend Capability in Kie Server

The Kie Server REST API enables you to interact with our business assets (such as business rules, processes, and solvers). The available REST endpoints are determined by the capabilities enabled in our Kie Server. We can extend an existing Kie Server capability with a custom REST API endpoint to further adapt our business needs.

[ jBPM ] Read More
April 1, 2020

Kogito - Travel Agency Example

The Travel Agency application is becaming the most relevant and complete example in the Kogito workshops and tutorials so far. This is because it makes use of most of the component in the Kogito ecosystem from UI to Data Index.

[ Kogito ] Read More
January 3, 2020

jBPM Introduction

Following the Decision Manager series on my blog site, in this post we introduce the basics for jBPM (Java Business Process Management). jBPM allows to write our business logic using flow charts on the latest BPMN 2.0 standard specification. We’ll be doing the same example as our previous post.

[ jBPM ] Read More
December 9, 2019

RSocket Messaging with Spring

Recently, I found out RSocket messaging framework and what surprise me the most is that it was already being used by many many well known companies like Netflix, Facebook or Pivotal. Let’s explore what is RSocket and what problem is addressing.

[ Spring, RSocket ] Read More
November 15, 2019

Visualize structured logs in ELK stack

By default, the logging frameworks outputs the traces in plain text and tools like ELK can’t fully process these traces. We could workaround the issue by adapting the messages using Logstash, but if we are using another tool like Prometheus, we would need to workaround it there as well. Therefore, if we “structure” or send the traces in JSON format directly, all the tools can benefit of.

[ Design Patterns, ELK ] Read More
September 4, 2019

Location support for Alexa Skills in Java

I wrote my first tutorial for creating a Skill in Alexa almost a year ago. Recently, I wanted to create a skill that provide the conditions of the most closest beach according to your current location. How can we get the user location? I found many sources but all of them were written in node.js. Let’s use Java 8 here.

[ Alexa ] Read More
April 24, 2019

Distributed Architectures

When thinking on distributed architecture solutions, we need to have many things in mind to choose the right one. Some of these are:

  • Scalability: how can scale my system?
  • Message size: number of requests we need to manage
  • Message Priorities
  • Eventual Consistency: do we need my response just now and quick? Does it exist?
[ Design Patterns, Kafka ] Read More
March 22, 2019

Java 9 New Features

Sorry for another post about the new features of Java 9. There are already tons of sites talking about this. As usual, I like to create a post as a notebook for me with useful tips when working on something. Moreover, this is how I like to learn about something! No more time to excuses.

[ Java ] Read More
November 15, 2018

GraalVM Getting Started

“The world is polyglot”. This is why GraalVM is here. There are many languages around. Many of these languages have a strong community behind. There is no a perfect language, but all of them have strengths and weaknesses. So, what about if we could run any language on the same machine without dealing to install anything else? This is GraalVM!

[ GraalVM ] Read More
November 5, 2018

Angular 7 Getting Started

Angular is a Javascript framework which allows to build reactive single page applications. Angular is written in TypeScript which brings lot of new features to build more consistent and complex applications. However, this is not supported by browser, so we’ll compile from TypeScript to JavaScript.

[ Javascript, Angular ] Read More
October 23, 2018

Alexa Skill for Notes

Let’s play with Alexa by adding a new simple skill to make notes. Though adding notes as skill is quite simple, it makes use of most of the features in Alexa.

[ Alexa ] Read More
October 23, 2018

Kotlin For Java Developers

Kotlin is created by Jetbrains and is designed to cover some of the more painful aspects in Java: verbose, more concise and safety on exceptions. Also, it’s intended to be simpler than Scala.

[ Kotlin, Java ] Read More
October 22, 2018

Ethereum And Solidity Getting Started

Ethereum networks are a set of nodes or machines mining transactions within blockchains. The purpose of each transaction is tied to a smart contract or business definition. Because the machines need power to work, this mining work has a cost or gast limit which is measured in ether (or units of ether like wei). This cost depends on the number of operations our smart contract has.

[ Blockchain ] Read More
May 26, 2018

Summary of my articles on Baeldung

It cannot exist a start without an ending. A few months ago I stopped working at Baeldung and I wanted to thank Baeldung’s team all the help they gave me. I would say that learnt a lot of this experience but indeed I think I learnt more than just “a lot”.

[ Spring, JUnit, Mockito, Hibernate ] Read More
August 11, 2016

JPA + Hibernate Cascade Scenarios

After playing with entity relationships in Hibernate, I wanted to write my notes about the Cascade options and some scenarios for each one. At the end of this post, find a table to match the Cascade Types in Hibernate to JPA and the link to the source code in github.

[ Hibernate ] Read More