What is Observability in IT ?

In control systems engineering, observability is defined as a measurement of how well a system's internal states could be inferred from its external outputs. Meaning a system is considered observable if we can determine the behavior of the entire system in a finite time period from the system output. A system whose output doesn't generate … Continue reading What is Observability in IT ?

Chaos Engineering & Chaos Monkey for Spring Boot Applications

Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production. As we build more and more distributed systems by leveraging microservices and cloud platforms, we create a lot of moving parts and potential points of failure which makes these systems … Continue reading Chaos Engineering & Chaos Monkey for Spring Boot Applications

Service virtualization with spring boot microservices

Service Virtualization mimics or simulates behaviors of components that are unavailable or difficult to access while testingMicroservices applications are generally composed of multiple services. During the testing phase when the dependent services are not available, service virtualization technique allows to mimic the unavailable service and continue the tests even when the actual service is unavailable.During … Continue reading Service virtualization with spring boot microservices

Spring Boot Toggle Feature using Togglz

Feature toggle is a design pattern used to hide, enable or disable a feature during runtime. For example, during the deployment, a developer can disable the feature in the code which is released to production and enable it later in the next iterations when its 100% ready or enable the feature for testing to limited … Continue reading Spring Boot Toggle Feature using Togglz

Protocol Buffers & A Spring Boot Example

Protocol buffers is a method of serializing data , like XML and JSON.The format is created by google as its language-neutral, platform-neutral, extensible mechanism for serializing structured data to transmit it over the wire or to store itProtocol Buffers, which is sometimes referred as Protobuf is not only a message format but also a set of … Continue reading Protocol Buffers & A Spring Boot Example

Concurrency & Parallelism in Java

Concurrency and Parallelism are often used with respect to multithreaded programs and both have different meanings in this context. Concurrency is about processing more than one task at same time but not necessarily simultaneously, It is applied to reduce the response time of the system by using the single processing unit. In a concurrent application, … Continue reading Concurrency & Parallelism in Java

Useful git commands

List all branches: git branchList all remote branches: git branch -aaCreate the branch on your local machine and switch to this branch: git checkout -b <branch name>Create a new branch: git branch <branch name>Rename current branch: git branch -m <new branch name>Rename other branch: git branch -m <old branch name> <new branch name>Delete a branch: … Continue reading Useful git commands

Kafka Connect Concepts & Example

Kafka Connect is used to connect Kafka with external systems such as database, storage, and messaging systems for data import and export in a scalable and reliable way. The framework executes so-called "connectors" that implement the actual logic to read/write data from other systems. Example: In an organization, we have a custom application for customer … Continue reading Kafka Connect Concepts & Example

Key Concepts of Stream Processing

Stream processing is similar to any data processing where you read the data ,apply some transformation and then push it somewhere. However there are 3 key concepts that are unique to stream processing Time Time is the most important concept in stream processing and therefore it is important to have a common understanding of time … Continue reading Key Concepts of Stream Processing

Kafka Streams

Kafka Streams is a client library (API) to build applications that analyze and process data stored in Kafka in real-time. Streams application takes input from a Kafka topic and stores the output also in a Kafka topic and a stream is an ordered, replay-able, and fault-tolerant sequence of immutable data records, where a data record is defined … Continue reading Kafka Streams