Recently I started working for a small company that is currently experiencing growing pains. I’m not sure what kind of system I’ll talk about now. In fact, we have a medley of many different applications that talk to each other using the built-in "integration system", which is a combination of SQL jobs, background services written in .NET, FTP transfers and SSIS, etc.
Here's a bird's eye view: Our public website is an order entry system (third-party shopping software) hosted outside the supplier. We upload order information every 4 hours a day. This data is then massed by our home-based “integration system”, which transfers this information to our inventory and warehouse management system (WMS). It also transfers information to MS Great Plains, Pulse, PayFuse and third-party CMS, etc.
As you might have guessed, this architecture is very fragile, and a small setback (for example, FTP crashes when the SQL query fails) may cause a discrepancy in the data to have a domino effect. There have been cases where, due to data-related problems or replication problems, it can lead to a shutdown of the entire warehouse, and we sometimes cannot accept orders, process or send orders.
My task is to redesign our systems and eliminate the rigid connection of systems to ensure business growth. What areas do I need to look into? I study ESB and SOA, but they tell me that my company cannot afford half a million dollars to go with iWay or Talend.
What are the options? Is internal development an answer and cheaper than implementing an ESB? Has anyone experienced such growing pains, and if so, how did you deal with integration?
source share