Scale with asynchronous event-handling
My new venture, PE-Nexus, Middle Market M&A Platform, handles a lot of various business activities, like posting sell-side M&A opportunities, posting buy-side mandates, registering firms and individuals, processing professional networking events and activities (similar to Facebook “News Feed” and LinkedIn “Updates”), announcing closed deals and funds and various other M&A activities.
I originally designed the platform to handle all the events as they occur, synchronously because of the obvious time and budgetary constraints associated with building an Internet startup. This was sufficient in the beginning, but it became apparent that even with just over one thousand firms in the system, synchronous event-handling would not scale beyond the physical constraints of the hardware it is running on. For example, a single deal posting event may trigger business logic to process hundreds of automated deal match notifications and hundreds updates of the “Activity Stream” for hundreds of firms and members. Similarly, other events in the system trigger hundreds or even thousands interactions.
So I decided to do what I’ve done when I worked on Wall St. developing trading systems and high volume number crunching algorithms – I developed an asynchronous event-handling framework for PE-Nexus. To stay true to my believes that every software application should be as simple as possible I decided to use a simple yet powerful messaging framework Apache ActiveMQ as oppose to its commercial competition from Tibco, IBM, Oracle and other heavyweights that are unreasonably more complex to use and in many cases lock one into the vendor’s other offerings.
Now in it’s final stages of testing, PE-Nexus event-handling framework demonstrates significant improvements of the overall performance of the platform. It now easily scales horizontally across multiple servers and handles hundreds and as business grows thousands business events asynchronously, simultaneously and in real-time, without effecting the end-user experience.
Another important aspect of PE-Nexus event-handling framework is the fact that every important business action onthe platform now triggers an event. That event gets routed asynchronously to the appropriate event handler. New event handlers can be introduced without affecting any of the customer-facing functionality. In other words, new event handlers can be developed, turned on or turned off at any time.
i enjoy reading your posts. keep posting