Spring Boot Microservices , Docker and Kubernetes workshop – part3

In the previous posts we build few micro services (Order Service, Product Service, Customer Service) for an order management system using Docker and Spring Boot. We used Netflix libraries to manage, discover and load balance the micro services.

Managing these micro services and their multiple containers could get a bit tricky; especially in terms of Scalability, Observability, Security, Monitoring and managing resources. Hence we would use Kubernetes for our container orchestration. Click here to read more about Kubernetes.

In order to get started, we could either use a local Kube cluster in the laptop or use a cloud provider like AWS/Azure/GCP.

Read More »

Spring Boot Microservices , Docker and Kubernetes workshop – part2

In the previous post we created our first micro service “ProductService” using SpringBoot and Docker.

In this part we will go into details of how to manage multiple microservices using Spring Cloud and netflix libraries.

For our order management system, let’s say,  a minimal relationship could be something like this :

New Doc 2018-11-22 15.35.06

So, let’s build 2 more services called “orderService” and “customerService” in the similar manner how we build the “productService”.
Read More »

Spring Boot Microservices , Docker and Kubernetes workshop – part1

In this series of workshop we will build few micro services using spring boot, docker and then deploy them into kubernetes.
So, Lets get started.

First we need to define a problem statement to begin with. Let’s say we want to build an order management system.

Identifying domains

First step would be to understand what domains are required, for simplicity lets assume we need the following domains:

Read More »

Achieving Order Guarnetee in Kafka with Partitioning

One of the most important features of Kafka is to do load balancing of messages and guarantee ordering in a distributed cluster, which otherwise would not be possible in a traditional queue.

Lets first try and understand the problem statement

Let us assume we have a topic where messages are sent and there is a consumer who is consuming these messages.
If there is only one consumer, it would receive the messages in the order in which they are in the queue, or in the order in which they are sent.

Now, in order to achieve higher performance, we need to process the messages faster and hence we introduce multiple instances of the consumer application.

This would lead to a problem, if the messages contain any state.
Read More »

Build a new Web Application from scratch using Spring boot, Thymeleaf, AngularJS – Part 2

In this series of blogs we are building a complete web app using Springboot,Angular, etc.
In the last blog, we made a basic landing page with Thymeleaf.

In this blog we will introduce bower, which is used to manage front end dependencies like CSS,JS. We will use a bootstrap template to make beautiful landing page and then deploy the app on Heroku.

Read More »

Build a new Web Application from scratch using Spring boot, Thymeleaf, AngularJS – Part 1

In this series of blog posts we will be building a complete responsive web application using the following tech stack :

1) Spring boot
– Spring MVC web
– Spring Data JPA
– Spring Security
2) Thymeleaf for server side templating
3) Angular JS for client side MVC ( including JS dependency management with bower)
4) Deploy the app on AWS/EBS/Heroku/Openshift

Read More »

Understanding strategy pattern by designing game of chess

Today we will try to understand Strategy Pattern with the help of an example.
The example we will consider is The Game of Chess. The intention here is to explain strategy pattern and not to build a comprehensive Chess Game solution.

Strategy Pattern : The Strategy pattern is known as a behavioural pattern – it’s used to manage algorithms, relationships and responsibilities between objects. The main benefit of strategy pattern is to choose the algorithm/behaviour at runtime.

StrategyPattern

Lets try to understand this by implementing this to design the chess game.

Read More »