CAP and PACELC Theorems for Distributed Systems in the Cloud

Distributed Systems is a term used to describe systems that are spread across multiple nodes connected over the network. Data is typically stored on more than one node in the distributed system designed for the cloud. It is easy to scale a distributed system horizontally by adding more nodes to increase the storage and computing … Continue reading CAP and PACELC Theorems for Distributed Systems in the Cloud

Availability and Reliability of a System Hosted in Cloud

Architecting business-critical systems require a detailed analysis of non-functional requirements, especially when targeting the public cloud as the hosting platform. The public cloud has additional factors that could impact system SLA. Availability and Reliability of a system are usually considered the most common non-functional requirements among others that could have a major impact on the … Continue reading Availability and Reliability of a System Hosted in Cloud

OAuth 2.0 for Mobile Apps and SPAs

In one of my earlier articles on OAuth 2.0, we looked at how the OAuth framework can provide delegated access to the client application by issuing an authorization grant. Authorization grant refers to the way the client application gets the access token. There are various types of authorization grants that can be used depending on … Continue reading OAuth 2.0 for Mobile Apps and SPAs

OpenID Connect (OIDC)

In my earlier post on OAuth 2.0, we looked at how OAuth framework is meant to be used for delegated access. The framework is meant to provide a universally standard process by which client applications can gain access to a protected resource with a pre-defined authorization scope. The client application can access the resource without … Continue reading OpenID Connect (OIDC)

OAuth 2.0 Demystified

OAuth is a delegated authorization framework that allows an application to access protected resource without asking for user's credentials that own's the resource. It was developed as a specification to standardize the process for applications to gain access to user's data or for services to authorize access to other services (API authentication and authorization). OAuth … Continue reading OAuth 2.0 Demystified

Scaling Spring Batch Application on AWS with remote partitioning

In this post we'll look at how to scale a spring batch application on AWS using remote partitioning technique. Spring batch applications can be scaled by running multiple process in parallel on remote machines that can work independently on the partitioned data. There is a master step that knows how to partition the data and … Continue reading Scaling Spring Batch Application on AWS with remote partitioning

Running Batch Application using Spring Cloud Data Flow

In my previous article on running Spring Batch application in Cloud Foundry, we looked at how a Spring Batch application can be executed as a one-off task in PCF. We created a Spring boot batch application annotated as a Task and deployed it on PCF like any other cloud native application. Then the task was … Continue reading Running Batch Application using Spring Cloud Data Flow

Running Batch Application in Cloud Foundry

Cloud Foundry has become a platform of choice for large enterprises to run cloud native applications and transform the way applications are built and deployed. It provides the agility, scalability and flexibility to continuously launch new features quickly while reducing the risk. Cloud Foundry has been widely adopted to run Microservices which are associated with … Continue reading Running Batch Application in Cloud Foundry

Automated build using Jenkins Pipeline

In my earlier post on using Spark for financial analysis, we were either running the code within IntelliJ or doing a manual Gradle build. In this post, let's take a look at how we can leverage Jenkins pipeline for automated builds. The code discussed in this post is available in Github. Jenkins is a web … Continue reading Automated build using Jenkins Pipeline