Skip to main content

Microservices : Move Towards Anti-fragility

Nowadays  'microservices' become very high profile buzz word (even becoming fashionable trend in technology).  Hence I want to touch is part as I am also coming from technical background

So What is Microservices ?

If we go with wiki definition , we assign words like loosely coupled, independent business capabilities, to some sense independent modules,  to extent architectural style. Then after we dive more deeper we then start getting words like continues delivery of large complex application. That's it.

More words other than this will become just sugar coating and word battering.

My intention for this topic is to concentrate more on second part that is release cycle of complex application. This is part which is so important that in turn makes your decision whether to move towards microservice architecture.

What is issue with release cycle of Complex application?

Every application becomes complex when a lot of independent team fires their brain on single application without any collaboration to cater business requirement. And in the end everyone strive for immediate release and  finally all agrees with date which is surely months more that their require date. No one wins. Except there is major issue which might have business impact but surely business team losses here because final agreed date is again months more than what they want.

So where is robustness?

In worlds of competition, organisation invest more in technology and try to come up the first. And this is the bigger hurdle. How to come first when you take more time to reach to customers. Don't want to comment when application breaks in live.  (better go to social media to read screaming!).

if your application is so good even though its takes months to go live with new improvement then being robust say is also bad.
If your application is not good and breaks when you are not expecting, then being fragile is obviously bad.

So everyone want to develop application which does not fall in above category. So application must be complete (so no further improvement) and perfect (no failure). if you thinking of this then i think you are dreaming pal.

Wake up !. There is no application is complete and perfect in world, just app made by considering trade-offs.

So what we are doing in technological world?

I would not suggest to make application anti-fragile (fall between fragility and robustness). This would become suggestion like motherhood and pie words and but nothing in ground.

But  I would suggest you to look on release timing and capability to incorporate changes in your application.

If you have application , you can release that in a day . Then if you are looking to move to microservices then you are thinking for formula one car but surely I would suggest corolla is enough for you. Please keep that only in mind, don't try to implement , that big might become monster.

What is Anti-fragility?
Nassim Taleb coined this term 'Antifragility' where you can gain or become strong learning from error or mistakes. He argues that error offers chances to move towards perfection and could avoid major risks by embracing and correcting smaller errors.

We can said in terms of application, we could achieve anti-fragility in application where we can segregate them in easily releasable components. So that in term of unforeseen failures , we can correct them and make it live.

This will also become mere theory talk if I will not give you practical example.
Netflix is leading example in market. It has moved from monolith to microservices architecture with smaller team with end-to-end development of hundreds of microservices that all work together.

Their intention is simply to move fast  enough to capture and hold demand of ever growing users and leaving no room for errors.

Here we can now think of Microservices!


Popular posts from this blog

Get Browser Name and Version in Javascript

JQuery stopped providing $.browser function after 1.9 release.So you have to write your own code to get know browser and its version.There is not standard procedure or code to achieve this.
But I will show you to get browser name and version of  IE > 6, Google Chrome And FF.

Here we have AGENT to rescue.Every browser has navigation object available in its script.In this object userAgent field contains current browser information.

So you can ask me What is User-Agent?How will it help us?
          As I said earlier it contain browser information.There is not standard to show each information but almost every browser support it.
    There is complicated history behind user-agent variable.But in simple sense we can say that user-agent is used by server side component to get information of client-side browser and its compatibility to page it will going to rendered.So we conclude that this user-agent information is little bit 50% same in all browser.

Why is it(user-agent) 50% s…

Share data between Iframe and its Parent using JQuery

There could be requirement that you have to pass variables values to Iframe from parent or in other scenario you have to pass values from Iframe to its parent.I am going to show simple example of above situation with the help of JQuery.
           Support we have parent HTML page having iframe included like below

<html> <body> <input id="parentValue" type="text" value="I am from Parent !" /> <iframe src="domainurl/relativepath" id="iframe"></iframe> <script> $(document).ready(function() { //code to take value from child iframe var childValue = $("#iframe").contents().find("#childValue").val(); alert(childValue); }); </script> </body> </html> 
        and we have frame code like below
<html> <body> <input id="childValue" type="text" value="I …

Spring Default Limit for Collection and Array is 256

If you are working in Web Application Development then you may stuck or already had ,then you will get mad of getting this error

How this error emanates in Spring?

i will explain you with example.Suppose you are adding Values in List in JSP using JSTL tag or other.
This list is in Form(HTML).When you POST this form,In behind Stage,Spring does binding of Object and List if present.

But wait...
In Spring,Default limit for array and collection growing is 256.

Why this limit is Set?

seldom you have to send List size greater than this limit.
Spring has set this limit to avoid notable OutOfMemoryErrors in case of large indexes.

So,than What if i want to set Collection greater than this size?

I had told earlier,spring does binding behind.If we tell spring to increase it's size or set collection size behalf of spring.
You you can do it.

We have initBinder,  in Spring  it is called when spring does the binding mechanism
e.g @Mod…