API Gateway and Centralized Logs

Image for post
Image for post

This is the third post of my microservices series, where I talk about my impressions of this architecture style using Java with Spring Boot.

The full series of articles are listed below:

In this article we will implement an API Gateway and…


Fault tolerance and Configuration Server

Image for post
Image for post

This is the second post of my microservices series, where I talk about my impressions of this architecture style using Java with Spring Boot.

The full series of articles are listed below:

In this article we will implement Fault Tolerance and Configuration…


Project setup, REST communication and Service Discovery

Image for post
Image for post

This is the first post of my microservices series, where I talk about my impressions of this architecture style using Java with Spring Boot.

The full series of articles are listed below:

In this article we will go through the initial project setup…


A guided journey using Spring Boot

Image for post
Image for post

In this article it will be described the steps of building a REST API with Java, and talk about some design decisions and personal preferences. I built an API to serve as a reference, including authentication/authorization using JWT and all sort of tests.

I’ll try to put into words what I’ve been studying and applying about REST APIs, and of course, talking about each point with my personal bias.

For reference, the technologies used in the project were: Java 11, Spring Boot, Spring Web, Spring Security, Spring Data, H2 database, Json Web Token, mapstruct…


A straight reference to Kotlin Programming Language

Image for post
Image for post

This article is a reference guide to Kotlin programming language to be used as a quick reminder of its keys topics, especially for Java developers. Hope it helps others developers eager to learn Kotlin as well. Enjoy!

Kotlin is a concise, safe, interoperable and tool-friendly programming language developed by Jetbrains. Kotlin supports both Object Oriented Programming and Functional Programming paradigms, and it is interoperable with Java, which means that it's possible to call Java code from Kotlin.

“Hello Kotlin”

The entry point of a Kotlin application is the main function.

The classical “Hello…


Implementing a GraphQL server with Java and Spring Boot

Image for post
Image for post

In this article I will give a brief introduction to GraphQL concepts and describe the process of implementing a graphql server using Java and Spring Boot framework.

GraphQL is a query language for APIs that was first built and used inside Facebook in 2012. After it was released as a specification.

So it is a query language to retrieve and update data from a server, describing the data of the API through a schema that contains the types and relationships between them.

Unlike REST APIs, that identify each resource by an…


First steps implementing messages streams in Apache Kafka

Image for post
Image for post
Consuming messages from where, sir?

This article will give a very brief introduction to Apache Kafka, referencing its keys concepts from official documentation and then focus on implementation of a basic message flow from producer to consumer using Java programming language.


Or should I say: “Observable Pattern on steroids”

Reactive Programming is about dealing with data streams and propagation of change.

Image for post
Image for post
What if I told you… everything is a stream?

Reactive Systems are applications which architecture approach make them Responsive, Resilient, Elastic and Message Driven.

  • Responsive: Systems should respond in a timely manner.
  • Message Driven: Systems should use asynchronous message communication between components to ensure loose coupling.
  • Elastic: Systems should stay responsive under high load.
  • Resilient: Systems should stay responsive when some components fail.


The power of multi-threading using Java

This article describes the basics of Java Concurrency API, and how to assign work to be done asynchronously.

Image for post
Image for post
Why not do the work concurrently?

A thread is the smallest unit of execution that can be scheduled by the operating system, while a process is a group of associated threads that execute in the same, shared environment.

We call “system thread” the thread created by the JVM that runs in the background of the application (e.g. garbage-collector), and a “user-defined thread” those which are created by the developer.

First, we need to know that in a standard Java program, all the work we implement is done in…


A quick reference to Go Programming Language

Introduction

This post is a personal reference to Go programming language to be used as a quick reminder of its keys topics. Hope it helps others developers with same issues. Enjoy!

This post assumes previous knowledge of programming logic and Go installation and development setup, as described here.

Image for post
Image for post

As its official description here:

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Go say “Hello World”

The base structure of a Go program is like this:

package mainimport ( 
"fmt"
)
func main() {
fmt.Println("Hello World");
}

Go is…

Tiago Albuquerque

Software Craftsman

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