After launching the Beta we have conducted extensive tests with a limited number of invited users. Most things were working as expected, but we have noticed issues in relation to fee calculation and rounding. Also, budget orders were not triggering correct matching in some circumstances. This has been all fixed. The incoming orders have a new, re-written checks, and we have expanded the Exchange core tests to over 100, and the back-end and front-end tests reached over 200 in the last few weeks. We are slowly reaching the official release, but first, a revelation. The Beta tests highlighted a fundamental issue in relation to load balancing and concurrency support…
While playing with the Beta site it became apparent that the current concurrency architecture and internal messaging infrastructure is insufficient and needs improvements. From one hand there are potential bottlenecks that can be abused and effectively allow Denial of Service attacks, from the other hand, in case of failure we do not have a robust mechanism to store internal state of the exchange so that we can re-start the matching exactly at the point where the failure occurred. After two weeks of brainstorming we have reworked the internal messaging bus and changed the underlying architecture. It is actually simpler now, better decoupled and much more robust. There are still some finishing touches that need to glue the new components together but we are almost back where we were before. Overall, the new internal design looks slick and I am eager to run some performance tests and throughput analysis on the new engine.
We have also started the formal registration process as the Financial Service Provider. The process in New Zealand is not overly bureaucratic, and we hope to be able to fulfill all the formal requirements soon.