Microservices API Gateway Introduction

Microservices architecture approach provides opportunity for multiple services to work together to create a cohesive application. Since, all the services interact with each other via different APIs hence it requires an entity to manage all the api interaction across services. This entity is called API Gateway and is one of the most important entities in microservices architecture. In this article, we are going to discuss about API Gateway and its importance in microservices architecture approach.

Please check Introduction to Microservices Architecture for more information.

(more…)
Microservices API Gateway Introduction Read More

Microservices Design Best Practices

Microservices architecture is a software development approach allowing breaking down of large complex applications into smaller and independent modules which are called a service. These services are designed in a way to be loosely coupled and can be deployed independently which allows flexibility in scalability and faster deployments. This approach also increases the resiliency of the system. In this article we are going to talk about Microservices design best practices which must be considered while designing.

Please check Introduction to Microservices Architecture for more information.

(more…)
Microservices Design Best Practices Read More

Introduction to Microservices Architecture

Microservices architecture style is a way to design software applications by breaking down the complex software into multiple smaller, independent services. These small services are called microservices and software applications are built by combining multiple smaller services (or microservices) where each microservice will perform a specific function and it can communicate with other services as well.
In this article, we are going to discuss about the various advantages and disadvantages of microservices architecture.

(more…)
Introduction to Microservices Architecture Read More

Singleton vs Static class

The singleton design pattern ensures that at any point of time a class has one and only one instance which can be accessed globally. This design pattern is useful in cases where exactly one instance is needed to co-ordinate between different modules of a software. Singleton design pattern can be used as a logger class or memory/thread pool classes for which only one instance of object is needed.

(more…)
Singleton vs Static class Read More

Proxy vs Observer design pattern

The Proxy design pattern allows to define a “proxy” class which will act as a wrapper object which will be called by the client to access the product object without exposing the details. This proxy class can also be used to add extra functionality without changing the product behavior. This design pattern can be used in cases to provide additional security access to an existing product or providing an interface for remote resources. General class diagram of proxy pattern is shown below.

(more…)
Proxy vs Observer design pattern Read More

C++11: Override and Final keyword

The explicit override and final keywords in C++11 (Introduction to C++11) enhances the polymorphism capabilities of C++. These new features provide extra control over virtual functions to the programmer. In this post, we will discuss about these new features and their usage.

Override

The explicit override keyword overrides the marked virtual function in derived class as override version of base class virtual functions. This ensures that the overrides are done by the programmer intentionally which reduces the chances of unwanted mistakes by providing clarity and hence improves the code readability and maintainability.

(more…)
C++11: Override and Final keyword Read More

C++11: Uniform Initialization explained with Simple example

In C++11 (Introduction to C++11), “Uniform initialization” syntax is introduced to initialize variables which provides a consistent syntax for all types of data variables initialization. This syntax is defined for all types of objects, arrays etc. In this post we are focusing on Uniform initialization syntax with some coding examples.

Earlier there were multiple ways to initialize variables. For example: basic data type variables could be initialized using assignment operator whereas class objects could be initialized using a constructor.

In C++11, a uniform way of initializing variables is introduced which is called “Uniform Initialization” syntax.

Let’s have a look at the sample code example to understand the usage of uniform initialization.

(more…)
C++11: Uniform Initialization explained with Simple example Read More