Are you trying to understand Big Data and Data Analytics, but confused with batch data processing and stream data processing? If so this blog is for you !

Image for post
Image for post

Today developers are analyzing Terabytes and Petabytes of data in the Hadoop Ecosystem. Many projects are relying to speed up this innovation. All of these project are rely on two aspects. They are :

  • Batch Processing
  • Stream Processing

What is Batch Processing?

Batch processing is where the processing happens of blocks of data that have already been stored over a period of time. For example, processing all the transaction that have been performed by a major…

As a developer, we have seen how synchronized blocks and methods can ensure that operations execute atomically, but unfortunately, it is a common misconception that synchronized is not only about atomicity or demarcating “critical sections”.

Synchronization also has another important aspect, mainly memory visibility. We want not only to prevent one thread from modifying the state of an object when another is using it, along with that we need to ensure that when a thread modifies the state of an object, other threads can actually see the changes that were made.

But without synchronization, this may not happen. You can…

Image for post
Image for post

What is thread safety ?

thread-safety or thread-safe code in Java refers to code that can safely be utilized or shared in concurrent or multi-threading environment and they will behave as expected.

Thread-safety is one of the risks introduced by using threads in Java and I have seen java programmers and developers struggling to write thread-safe code or just understanding what is thread-safe code and what is not?

How to make Thread-Safe Code in Java

Before you learn how to write a thread-safe code you need to understand what is thread-safety and there is no better way to that than looking at a non-thread-safe code. …

What is Concurrency?

Image for post
Image for post

Concurrency is the ability to run several programs or several parts of a program in parallel. If a time consuming task can be performed asynchronously or in parallel, this upgrades the performance of the program by increasing the throughput and the interactivity of the program.

Few years back, computers didn’t have operating systems, they executed a
single program from start to end, and that program had direct access to all the resources of the machine. Executing a single program at a time was an inefficient use of expensive and scarce computer resources.

A modern computer has several CPU’s or several…

Image for post
Image for post
django microservices

Now a days Microservices are very popular and our industry tend to move to distributed architecture. I got an opportunity to implement CAS for Django microservices. I tried to find some descriptive tutorials on the subject, but didn’t find anything except for the official documentation. I just wanted to make other devs’ lives a little bit easier through this article.

The Central Authentication Service (CAS)

Before we dive into the main subject, lets discuss briefly what is CAS and How it works. …

Image for post
Image for post
django logo

Django is an open source python based framework that helps to build web applications. The popularity of this framework increased rapidly in last couple of years. Compare to other python-based frameworks like Flask and Pyramid, django framework is far most popular among python developers. It supports both Python 2.7 version and Python 3.6 version.

Image for post
Image for post

Transferring data from an activity to another activity is a common use case when it comes to Android applications. This blog article describes the steps to be followed to develop a simple chat application that transfer messages from one user activity to another.


  • Android Studio (Download Link)
  • Basic knowledge of XML and Java
  • Android Emulator

Okay Lets begin!!

  1. Open Android Studio and Start a new project

This blog is a brief discussion about supervised and unsupervised learning techniques

Image for post
Image for post
Supervised learning vs Unsupervised learning

Let’s start with supervised learning

As a second project of my internship at WSO2, I got an opportunity to work on the status dashboard for WSO2 Stream Processor.

The Status Dashboard of WSO2 Stream Processor allows user to monitor the metrics of a stand-alone WSO2 Stream Processor instance or a WSO2 Stream Processor cluster. This involves monitoring whether all processes of the setup are working in a healthy manner, monitoring the current status of a Stream Processor node, and viewing metrics relating to the history of a node or the cluster. …

Image for post
Image for post
Stream Processing Architecture

Real-time streaming data ingest is a common requirement for many big data use cases. In fields like IoT, e-commerce, security, communications, entertainment and finance, where so much depends on timely and accurate data-driven decision making, real-time data collection and analysis are in fact core to the business.

However, collecting, storing and processing streaming data in large volumes and at high velocity presents architectural challenges. An important first step in delivering real-time data analysis is ensuring that adequate network, compute, storage, and memory resources are available to capture fast data streams. But a company’s software stack must match the performance of…

Gowthamy Vaseekaran

Software Engineer @ hSenid Mobile | Former Software Engineering Intern @ WSO2 | Software Engineering Undergraduate @ IIT

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store