September 11, 2009

Evolvoblity in Software System …

Filed under: Uncategorized — khangharoth @ 4:20 pm

Right now working on this and its kind of really interesting problem

So what’s the problem we want to solve :

  • Say We have a central Server/Cluster/DataStore.
  • Many Clients accessing this Central thing.

Let’s take a specific case for better understanding.

You want to have a trading platform : It will consist of

  • Trade booking applications : We can have mutiple apps say for Equity/Derivatives/FX etc.
  • Central Data store : Resonsible for data storage and single source of data for other applications
  • Middle office Systems like Confirmation Systems ,Settlements Systems etc.
  • Back Office Systems.

And in out System we have a class defination of Trade : a,b,c as attributes.

Currently everybody has this Class defination and they are able to Read/Write happily.

But what if  a Client want’s to add a new field( d )to this Trade class and want to use that ?

Do all the other Clients/Central thing needs to be Upgraded as well ? For practical purposes this may not be desirable.

So then how do you design your System where a Single client upgrades to new version and its using new fields but other clients are still running on older version , its just that they don’t see the d field but can work with a,b,c .

It turned out that this is not so difficult to achieve!

The real problem is if a Client adds a New SubClass (new trade type,having extra field d ) and still other clients can read this ,same as before ,able to work on as Trade class (on  field a,b,c without knowledge of d).

Blog at