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!




Sources:
https://en.wikipedia.org/wiki/Microservices
https://www.nginx.com/blog/microservices-at-netflix-architectural-best-practices/









Popular posts from this blog

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


java.lang.ArrayIndexOutOfBoundsException:Arrayindexoutofrange256
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…

Apache FOP Tutorial for PDF Generation

What is meant by Apache FOP?

Apache is providing open source JAVA application for PDF(or any other format) file generation from XML data.Simply to can give data in XML,it gives output in PDF or any format.But it is primary for PDF output.

Official explanation,
OP (Formatting Objects Processor) is the world's first print formatter driven by XSL formatting objects (XSL-FO) and the world's first output independent formatter. It is a Java application that reads a formatting object (FO) tree and renders the resulting pages to a specified output. Output formats currently supported include PDF, PCL, PS, SVG, XML (area tree representation), Print, AWT, MIF and TXT

How wcan configure apache fop with our project?

I am going to explain how to generate PDF using Apache FOP.
I will explain it in steps

Step 1:
You will require 3 jar for configurations.Here fop jar depend on both avalon api and avalon impl.
              1.    apache fop 1.1
              2.    avalon-framework-api 4.3.1
    …