List is one of the most commonly used collections in Java. Some List implementations are LinkedList, ArrayList, and Stack. In this post, I will take you through some of the common operations performed on List. Overview In Java, List is an interface that provides the facility to maintain an ordered collection. It provides different methods that […]Continue reading

Using API Gateways is a common design pattern with microservice architectures. API Gateways allow you to abstract the underlying implementation of the microservices. Microservices based systems typically have a large number of independent services. One challenge in such systems is how external clients interact with the services. If external clients interact directly with each microservices, […]Continue reading

A Spring Boot RESTful service is typically divided into three layers:  Repository, Service, and Controller. This layering helps to segregate the RESTful application responsibilities and enabling loose coupling between the objects. When you develop a layered RESTful application, you will also need to test the different layers. In this post, I will discuss testing Spring […]Continue reading

RabbitMQ is a common messaging broker which allows applications to connect and communicate. It’s common for services in microservices-based systems to communicate asynchronously through messaging. In order to create such a message-based system, you need a message broker, aka messaging server. A message broker can support several messaging patterns. Typically, a message sender sends a […]Continue reading

Java SE 12 introduces switch expressions, which like all expressions evaluate to a single value, that you can use as statements. Java 12, brings improvement to the switch statement with new capabilities. Some of the key capabilities are arrow case labels, multiple case statements, and return values. In this post, I’ll explain the new switch […]Continue reading