Hopefully I've sucked you in with the pretentious thread title. What I'd like to do here is discuss ATS system architecture best practices. To be clear, I'm talking about custom software built from scratch rather than systems coded up in Tradestation or Amibroker etc. In other words, I'm talking about the ATS framework. I've come to the conclusion that an open source solution will most likely not arrive on the scene any time soon (actually there are some but none that I deem suitable so far). This is not surprising given the nature of the industry we are in. It's very much "every man for himself". However, instead, I wonder if we can compromise and adopt a "Collaborate on ideas, compete on implementation" approach to ATS development. This thread is here to test that idea. Those of you with genuine experience of ATS development are encouraged to share your ideas, concepts, lessons learned (learnt?), architecture overview etc. Naturally, anyone, regardless of experience is welcome to contribute to the thread. If you have said experience and prefer not to share your ideas due to the large amount of effort expended getting to where you are, I fully respect your position. However, please try and refrain from coming on to this thread and naysaying or poo-poo'ing ideas and discussions that I hope will take place herein. I am quite familiar with the frustration that can come about when people start discussing things you have already done several years ago! If you have criticisms to make, please make alternative suggestions as clearly as possible. Cryptic one-liners just serve to annoy people and don't really take things forward. I apologize for the lecture, I'm just trying to preempt thread deterioration that I've witnessed on many forums. Lastly, in the spirit of collaborating on ideas, we'll try and avoid getting bogged down by debates on languages i.e. no Java-bashing, Phython cheerleading, C++ religious extremism etc. Many high-level architectural discussions can be done language agnostic. However, having some Java experience myself I will most likely be discussing various Java data structures etc. in the future if any other Java developers care to participate. Lets keep it on topic!