Is Shifting to Domain Driven Design worth your Efforts?


In our earlier blog, we explored a bit about Microservices. But let’s take a step back and look into how microservices can be effectively designed.
Yes, you guessed it right. We will be talking about the Domain Driven Design or what we call the DDD approach.

But before jumping into the concepts of Domain Driven Design, let’s understand 2 basic terminologies :

  • Domain:
    A domain is the sphere of knowledge and activity around which the application logic revolves.
  • Model :
    A system of abstractions that describes selected aspects of a domain and can be used to solve problems related to that domain.

Now that you know what a domain and a model are, let’s try to understand what Domain Driven Design is.
Screenshot from 2018-04-22 09:00:09.pngDomain Driven Design is a methodology and process prescription for the development of complex systems whose focus is mapping activities, tasks, events, and data within a problem domain into…

View original post 1,075 more words

Being a Software Consultant: Knoldus way

Read once


I have been now working as a Consultant for 2 years and I wanted to document my insights and understanding towards the designation. I want to take you through the benefits and the sporadic hardships (luckily!) that have shaped my understanding of the work we do.

As a Software Consultant, our involvement in the decision making for the project has been immense, compared to what I hear from some outside world consultants who rant that their opinions and suggestions are not heard, even though they are called Consultants. Their work is more or less limited to development. Why? Because Knoldus puts us in front of the clients as people who are able to make sustainable decisions and not just merely as coders. That increases the potential of a person in decision making. It also increases the confidence and the connection with what we do. With that increased connection, our focus…

View original post 404 more words

Decision Tree in Apache Spark


What is Decision Tree?

A decision tree is a powerful method for classification and prediction and for facilitating decision making in sequential decision problems. A Decision tree is made up of two components:-
  • A Decision
  • Outcome

and, A Decision tree includes three type of Nodes:-

  • Root node: The top node of the tree comprising all the data.
  • Splitting node: A node that assigns data to a subgroup.
  • Terminal node: Final decision (outcome).

To reach to an outcome or to get the result, the process starts with the root node, based on decision made on root node the next node i.e. splitter node is selected and based on decision made on split node another child split node is selected and this process goes on we reach to the terminal node and value of terminal node is our outcome.

Decision Tree in Apache Spark

It might sound strange or…

View original post 636 more words

Learning the maths for Feed Forward Network


In my last blog we were discussing about the biological motivation on the artificial neural network. This time we will discuss more about the artificial neural network in practice. In ANN we have different layers of networks to solve a problem. For which problem, how many layers required to solve it, is a different topic and will be writing a blog on that soon, however we can still proceed to implementing the network and making it learn to solve the problem. No doubt as programmer we understand code better and pick anything up pretty quickly. ANN also could be learn directly by going through the code, however so far what I feel is that knowing the maths behind the ANN algorithm helps more in understanding the process. So before going to the code I would be discussing about the maths behind it. The below image and all its description are…

View original post 556 more words

Forget It! Going Digital & You haven’t heard Reactive?


Today, you talk to any CIO, attend any CDO conference and it would have a track about going Digital. Digital transformation is a sought out area to invest … err … throw money. Without knowing how digital is going to help you and what is the technology stack that can allow you to go truly digital, I do not recommend any CIO/CDO to get into the ring.

The 3 main objectives that any digital strategy should be focused on would be

  • Customer Experience (CX)
  • Operation Process
  • Business Model

As Forrester suggests, you should not develop a digital strategy but you should rather Digitize your business strategy. You are the domain expert, you know your business best, you know who your competition is and again, you know how your customers like it. So, rather than trying to create a Digital Strategy and bolt on your business, you would rather try…

View original post 578 more words

Akka Split Brain Resolver – Problem and its Solution


AKKA Split Brain Resolver

When operating an Akka cluster the developer will surely comes around network partitions (Split Brain scenarios) and machine crashes. There are multiple strategies present by lightbend to handle such erratic behavior and, after a deeper explanation of the problem we are facing, I will try to present them along with their pros and cons using the Split Brain Resolver in Akka, which is a part of the Reactive Platform.

The Problem Statement

The basic is as follows – a node cannot differentiate between complete crashes and temporary network failures that could get resolved.

– In our current scenarios the network tracks the state and health of the nodes it contains using a “heartbeat”. This is a mechanism where each node sends a simple message in a given interval (for example with a time delta) to every other node that basically says “I’m OK”. The system makes…

View original post 1,450 more words