We have an application that has served us and our clients well from some 20 years now. Pretty good track record but it's obviously showing it's age in some areas.
We are looking for advise and suggestions for bringing the product to the next level. The idea is to address some issues without throwing away or rewriting 10,000's of lines of code.
The application is financial in nature and handles 100's of thousands of transactions and customer records. The core of the product is solid. By core I'm talking about our business logic, batch processing, etc. It's the interfaces and the periphery where we need retooling.
We could use more granular access/permissions model, better access to data and processes though APIs and we need to be able to develop these components more rapidly than possible with our current system.
To preserve our investment and not fix what is not broken, we are investigating what changes can be made to address these concerns but still keep most of the libraries and programs written in C.
One idea we have is to replace our front end with a Node.js based application. The application will initially provide API (Rest based json data) services for read and update of data as well as business logic process endpoints. It would also manage access to data (read and write) and processes via some roles based permissions model.
Finally, my questions:
- Does this idea have merit?
- If not, what other approaches should we consider?
- What other considerations are there for this project?
- Will Node.js used in this fashion scale?
- What server side js framework should we consider? Express seems promising but maybe some other more "opinionated" framework would be better.
For ready only operations, I expect that all server side activity will be handled in the Node.js application. For business logic, maybe database writes, I expect we will hand off the processing to a separate program. We assume the aysnc/await ability will allow this w/o performance degradation. Add-on integration might be possible but as our libraries aren't thread safe that might have limited usefulness.
Thanks in advance for your comments/ideas/suggestions.