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.

Reply via email to