Brilliant stuff, thanks Bruno.. will go through all of that. Thank you. On Friday, September 19, 2014 12:37:06 AM UTC+1, Bruno Jouhier wrote: > > Hi manhood, > > I have a blog and I have written several posts about node but I haven't > covered the architecture of our product and I haven't given much details > about our project. I have rather focused my posts on tools and libraries > that we have developed to ease node.js programming and that we have > published in open source. As you will see in the blog, I've also had > contentious discussions with other noders because I've often been promoting > a "different" approach to node programming. > > My blog: https://bjouhier.wordpress.com/ > > Open source projects: > https://github.com/Sage/streamlinejs > https://github.com/Sage/ez-streams > https://github.com/bjouhier/galaxy > https://github.com/bjouhier/node-lol (we don't use this one in our ERP :-) > > In our V7, we have done several big changes to our application. We have: > > 1. rewritten all our clients: a new web client, a new mobile client, > new Office add-ins. We are dropping our win32 fat client completely. > 2. replaced our Java web stack (almost all of it) with a new stack > based on node.js, > 3. rewrittten a new admin module (technical admin + user admin + > management of UI personalization) in node.js + mongodb > 4. introduced a search service based on Elastic Search. > 5. upgraded our traditional ERP kernel (C + proprietary 4GL language) > to fully support Service Oriented development (putting service orientation > at the heart of the product, not delegating it to some kind of middleware > tier). > > We have made a big bet on JavaScript 4 years ago: our new clients (except > the Office add-ins) are HTML and JavaScript (lots of jQuery initially but > we decided to drop support for old browsers and we are now going directly > to DOM APIs for performance - we sometimes have to display big data sets). > But we also chose JavaScript for the server side (a lucky move as node got > a lot of traction). The idea was not so much to share code between browser > and server (we share a few modules) but to build a strong common technical > culture and keep things simple. > > Node is really central in our new architecture because our node server > acts as a smart proxy between all the pieces of the puzzle. All the > requests from all clients go through our node server, which acts as a smart > proxy and connects to all our backend components. Our node server does not > connect directly to the ERP database (Oracle or MSSQL) but it talks to our > ERP engines (a C interpreter that executes proprietary 4GL code) through a > proprietary binary protocol. We also wrote our own load balancer in node.js. > > Our new architecture is very RESTful (in the HATEOAS sense of it ). I'll > blog about it when I get the time. > > Our JS code is all written with CommonJS modules (node's flavor, and we > have a small infrastructure that makes it work transparently and > efficiently client side). All the server side async code is written with > streamline.js (a language tool that I published in Jan 2011). > > We are using a few 3rd party modules (mongodb-native, pdfkit, commander). > We are using qunit (node-qunit server side) for unit tests. I'm not a big > fan of smallish 3rd party modules that solve little problems that we can > easily solve ourselves but when there is a big problem to solve (fast > mongodb driver, PDF generation) and a good module for it (with the right > license) I go with it. > > The callback model was a showstopper for us: too fragile, too difficult to > read and maintain (we started with it). We needed something simple and > robust. We also had to be able to bring new developers quickly up-to-speed > on the project. IMO the callback model is cool for systems guys who write > low level I/O code but not for application developers who write lots of > rather mundane business logic. These guys don't care about async I/O, they > care about writing their logic in a natural and maintainable way. If we > hadn't found a solution to this problem (streamline.js, fibers came out a > few days later) I am not sure that we would have continued with node (note: > we tried promises too but they did not cut it). > > This was a difficult project and it took 4 years to complete it. But most > of the difficulty did not come from node itself (I think we had the right > approach to keep it simple) but from the complexity of the existing ERP > product. We are in a world that expects strong backward compatibility and > when you make such big changes to the technology stack, it takes a lot of > energy to put all the pieces back together and catch up with every feature > that used to be there before. > > The nice thing is that we made it. The product has been released and well > received by partners, customers and analysts. We still have a lot of work > to do but we have caught up and we have a great platform that should allow > us to innovate at a fast pace. JavaScript is a jewel: simple, accessible, > and versatile (functional, O-O, procedural - you pick what's best for your > problem and you can mix and match). Looking back, node was a great choice > and I would do it again 100 times. > > Hope this helps. > > Bruno > > On Thursday, September 18, 2014 8:26:32 PM UTC+2, manwood wrote: >> >> Bruno - interesting, do you have any blogs, or can you give me any detail >> on how you're using it? Where does it fit in your architecture? >> >> Thanks >> >> On Wednesday, September 17, 2014 10:50:08 PM UTC+1, Bruno Jouhier wrote: >>> >>> We (Sage) have been using node.js heavily in the new version of our mid >>> market ERP product (Sage ERP X3 V7). This is not "large enterprise", rather >>> mid-market but the fact that node has been chosen by an ERP vendor may help >>> you sell your story. >>> >>> Bruno >>> >>> On Tuesday, September 16, 2014 11:21:25 PM UTC+2, manwood wrote: >>>> >>>> I'm looking to build a case for using NodeJs at work (a fairly >>>> conservative and risk averse environment). >>>> >>>> Can people point me to any examples of large enterprises, or high >>>> traffic web applications, using currently NodeJs? >>>> >>>> Ideally I'm looking for blogs or discussions around proper, real-world >>>> architectures and tech stacks, any problems they've overcome, lessons >>>> learned, stories from the trenches etc. >>>> >>>> I have seen FogCreek's Trello for example - I'm looking for more like >>>> this. >>>> >>>> Thanks >>>> >>>
-- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/0c8123d5-ae36-435d-99da-d5c807a18e80%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
