SlideShare a Scribd company logo
Shubhra Kar | Products & Education
twitter:@shubhrakar
Frameworks or a Design Pattern ?
About me
u J2EE and SOA architect
u Performance architect
u Node, mBaaS & APIs
These guys sent me !
Bert
Belder
Ben
Noordhuis
Node/io Core
Raymond
Feng
Ritchie
Martori
LoopBack & Express Core
Sam
Roberts
Miroslav
Bajtos
Ryan
Graham
Buzzwords
Websites
Smart
Mobiles
Online
Catalog
Social
Media
Kiosks
Computers
Physical
Store
Gaming
Consoles
No IO bottlenecksHighly Concurrent
Very Fast JIT compiled
Node.js is emerging as the answer
Reduce infrastructure by 5XScalable
Lightweight, JS back and front, HeadlessFull stack
Write and maintain 50% lesser codeSimple
Suited for mobile and IoTEvented & JSON
Biggest OSS community on the planetEcosystem
Picking the Right Node.js Framework for Your Use Case
Evolution is inevitable !
Thick
Web
SaaS
Mobile IoT
Frameworks evolve as well !
•  Callback
•  Reactor
•  Observer
•  Express
•  HAPI
•  Restify
•  Total
•  Partial
•  Loopback
•  Parse
•  Meteor
•  Feedhenry*
•  Loopback
•  Sails
•  Meteor
•  Geddy
•  Loopback
•  NodeRED
•  Proprietary
KISS
MVC
MBaaS
ORM/
MEAN
Micro/
loT
Pattern 0: Natal patterns
Philosophy: KISS (Keep It Simple Stupid)
u small core
u small modules
u small surface area
Patterns
u reactor
u callback
u module
u observer
Pattern 1: Convention
HTTP Server Library REST HTTP Library
Simple MVC Structure
Pros and Cons
Express
DIY
HTTP Routing, Middleware, Templating
Simple Web Apps
Github Stars – 19K
Commercial Support - StrongLoop
CLI App Generator
Export API definition with strong-remoting
Connect/Express middleware extensions
Vast Ecosystem and low learning curve
StrongLoop DevOps tooling support
Manual CRUD endpoints
Manual recursive refactoring/testing
No Data source Support
No Client SDK
No ACL (Fine Authorization)
Restify
DIY
Simplicity, Rest Routing
Simple REST API
Github Stars – 3K
Commercial Support - Joyent
Yeoman Generator
SPDY Support
Dtrace Support
No export of API definition
No Data source Support
No Extensions of significance
Manual CRUD endpoints
Manual recursive refactoring/testing
Limited Ecosystem
No ACL (Fine Authorization)
Router
in
Express
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
Router
in
Restify
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
Pattern 2: Configuration
HTTP Server
Framework
Hapi
Opinionated
Modularity, Security, HTTP Server control
Complex Web Apps, APIs
Github Stars – 4K
Commercial Support - None
Yeoman Generator
No export of API definition
Hapi Plugins – Joi, bell, bassmaster, etc
Limited ecosystem as compared to Express;
but does support templates with plugins
Swagger support for API documentation
Very limited Data source support – Mongo,
Postgres, leveldb
No Client SDK
No ACL (Fine Authorization)
Router
in
hapi
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
Pattern 3 : Full Stack JS à lends into pattern 4
{“..”} JSON is the new first class citizen
Pattern 4: ORM & Isomorphic JS
u Model Driven Development
u Any data source
u Isomorphic JS
u Omni-Channel
u Share Models (Client/Server)
u Loopback & Meteor
u Automatic REST API
generation, routing, etc
u Common Weakness : Higher
Learning Curve
Sails
Opinionated
Web MVC framework
WebApps, API
Rails familiarity, MVC
Github Stars – 10 K (older)
Commercial Support - None
Yeoman Generator
StrongLoop DevOps tooling support
No export of API definition
Limited data sources – MySQL, Mongo, Postgresql, memory/file
No Extensions of significance
Limited Ecosystem
No ACL (Fine Authorization)
No Client SDKs
Pros and Cons
Loopback
Opinionated
API framework
Complex Web Apps and APIs
Modularity, Scaffolding, Enterprise Connectivity
Github Stars – 4 K (newer)
Commercial Support - StrongLoop
CLI Code Generator, Visual API composer, API explorer
Export API definition
Extensions like Push, File Storage, Passport, Oauth 2.0, Express Middleware
Vast Connector ecosystem and extend express
Auto CRUD
Swagger UI and Code Generator
DataSources like Mongo, mySQL, Oracle, SOAP, REST, SQLServer, Memory/File,
Postgresql, Email, ATG, Couchbase, Apache Kafka, and many ore
Client SDK – Angular, Browser, IOS, Android, Node.js
Mature ACL (Fine Authorization), API Gateway
Pros and Cons
Developer SDKs
ORM & Isomorphic JS – Loopback.io
JS
client
JS
Server
Remoting
JS
client Replication
Pub Sub
Router &
Swagger
in Loopback
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
Router	
  using	
  Sails	
  
Sub-pattern : Schema Discovery
mobile/web
clients
social &
analytics
JSON API
API
XML
SQL
SOAP
Etc.
mBaaS
Mobile API tier
Enterprise	
  
Pattern 5: mBaaS
mBaaS could be on cloud or premises
u Closed Source / Commercial
u Open Source
Key API
u Push Notification
u Geo Location
u Offline Sync
u Storage
u User Management
u Metering, Analytics
u Native SDK
u Isomorphic JS
REST
API
PUSH
GEO
OFF
SYNC
DEVICE
USER FILE
Relational Database Clustered Database Security Gateway Cloud
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER
Quick Example of Use
App Server
Storage
Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( not sure on this one)
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER Items for ACL
Quick Example of Use
App Server
Add On
App Server
REST
API
GATEWAY
Channel SDKs
API ENGINE
C
O
N
N
E
C
T
O
R
s
A
P
I
S
D
K
s
Open Source ORM, mBaaS and API framework
REST API
Security Gateway Cloud Firewall SOA Bus ( not sure on this one)
e IoT SDK API SERVER Items for ACL
Quick Example of Use
App Server
Add On
App Server
API
Explorer
GeoLocation in Loopback
Push Notification in Loopback
Wait …what is this API Gateway
Thing then ?
Synchronous API “Re-Composition” is an anti-pattern
Security & Social Logins
Why not an node.js API Gateway pattern ? Pattern 6
API Clients API Gateway API Server
API
Internet of Everything
The devices are taking over !!!
Microsecond latencies are the norm
API “Decomposition” is the game changer
{JSON}
{JSON}
{JSON}<SOAP/XML>
<TABLE>
Web SaaS Mobile loT
HTML JSON
App Server API Server
Is micro services a pattern too ?
Not just infrastructure virtualization !
Pattern 7: Micro-services (Design Time)
Client SDK
REST
Endpoints
Store Cache
API Micro
Services
One URL Space
SL API PaaS REST/JSON
API Gateway
Router
Remoting
Model
API Orchestrator
Cloud Services
Model
Model
Connector
Connector
Connectors
Pattern 8: Micro-services (Run Time)
Now I know !!!
A Shameless Plug…
Picking the Right Node.js Framework for Your Use Case
First there was Node
Thank you!
JUST WIN,
BABY!
Ad

More Related Content

What's hot (19)

Building Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & LoopbackBuilding Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & Loopback
Chibuzor Obiora
 
Loopback presentation by tineco
Loopback presentation by tinecoLoopback presentation by tineco
Loopback presentation by tineco
Stéphane Guilly
 
Node.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns WebinarNode.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns Webinar
Shubhra Kar
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.js
Shubhra Kar
 
Triangle Node.js DevOps
Triangle Node.js DevOpsTriangle Node.js DevOps
Triangle Node.js DevOps
Shubhra Kar
 
OpenSource Node.js API Framework and Server for Enterprise
OpenSource Node.js API Framework and Server for EnterpriseOpenSource Node.js API Framework and Server for Enterprise
OpenSource Node.js API Framework and Server for Enterprise
Shubhra Kar
 
Toronto node js_meetup
Toronto node js_meetupToronto node js_meetup
Toronto node js_meetup
Shubhra Kar
 
Node's Event Loop From the Inside Out - Sam Roberts, IBM
Node's Event Loop From the Inside Out - Sam Roberts, IBMNode's Event Loop From the Inside Out - Sam Roberts, IBM
Node's Event Loop From the Inside Out - Sam Roberts, IBM
NodejsFoundation
 
Authenticating and Securing Node.js APIs
Authenticating and Securing Node.js APIsAuthenticating and Securing Node.js APIs
Authenticating and Securing Node.js APIs
Jimmy Guerrero
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boy
Andrew Siemer
 
Build a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.jsBuild a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.js
Stormpath
 
Whitebase : Assault Carrier for Micro-Services
Whitebase : Assault Carrier for Micro-ServicesWhitebase : Assault Carrier for Micro-Services
Whitebase : Assault Carrier for Micro-Services
Jaewoo Ahn
 
Ben Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of ThingsBen Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of Things
ServerlessConf
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
CodeValue
 
Another API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonAnother API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger Comparison
SmartBear
 
Exposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerExposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using Swagger
Salesforce Developers
 
Sliding away from Roy Fielding's REST model (Filippos Vasilakis)
Sliding away from Roy Fielding's REST model (Filippos Vasilakis)Sliding away from Roy Fielding's REST model (Filippos Vasilakis)
Sliding away from Roy Fielding's REST model (Filippos Vasilakis)
Nordic APIs
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
Tony Tam
 
Intro to Azure Static Web Apps
Intro to Azure Static Web AppsIntro to Azure Static Web Apps
Intro to Azure Static Web Apps
Moaid Hathot
 
Building Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & LoopbackBuilding Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & Loopback
Chibuzor Obiora
 
Loopback presentation by tineco
Loopback presentation by tinecoLoopback presentation by tineco
Loopback presentation by tineco
Stéphane Guilly
 
Node.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns WebinarNode.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns Webinar
Shubhra Kar
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.js
Shubhra Kar
 
Triangle Node.js DevOps
Triangle Node.js DevOpsTriangle Node.js DevOps
Triangle Node.js DevOps
Shubhra Kar
 
OpenSource Node.js API Framework and Server for Enterprise
OpenSource Node.js API Framework and Server for EnterpriseOpenSource Node.js API Framework and Server for Enterprise
OpenSource Node.js API Framework and Server for Enterprise
Shubhra Kar
 
Toronto node js_meetup
Toronto node js_meetupToronto node js_meetup
Toronto node js_meetup
Shubhra Kar
 
Node's Event Loop From the Inside Out - Sam Roberts, IBM
Node's Event Loop From the Inside Out - Sam Roberts, IBMNode's Event Loop From the Inside Out - Sam Roberts, IBM
Node's Event Loop From the Inside Out - Sam Roberts, IBM
NodejsFoundation
 
Authenticating and Securing Node.js APIs
Authenticating and Securing Node.js APIsAuthenticating and Securing Node.js APIs
Authenticating and Securing Node.js APIs
Jimmy Guerrero
 
Making your API behave like a big boy
Making your API behave like a big boyMaking your API behave like a big boy
Making your API behave like a big boy
Andrew Siemer
 
Build a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.jsBuild a REST API for your Mobile Apps using Node.js
Build a REST API for your Mobile Apps using Node.js
Stormpath
 
Whitebase : Assault Carrier for Micro-Services
Whitebase : Assault Carrier for Micro-ServicesWhitebase : Assault Carrier for Micro-Services
Whitebase : Assault Carrier for Micro-Services
Jaewoo Ahn
 
Ben Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of ThingsBen Kehoe - Serverless Architecture for the Internet of Things
Ben Kehoe - Serverless Architecture for the Internet of Things
ServerlessConf
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
CodeValue
 
Another API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger ComparisonAnother API-Blueprint, RAML and Swagger Comparison
Another API-Blueprint, RAML and Swagger Comparison
SmartBear
 
Exposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerExposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using Swagger
Salesforce Developers
 
Sliding away from Roy Fielding's REST model (Filippos Vasilakis)
Sliding away from Roy Fielding's REST model (Filippos Vasilakis)Sliding away from Roy Fielding's REST model (Filippos Vasilakis)
Sliding away from Roy Fielding's REST model (Filippos Vasilakis)
Nordic APIs
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
Tony Tam
 
Intro to Azure Static Web Apps
Intro to Azure Static Web AppsIntro to Azure Static Web Apps
Intro to Azure Static Web Apps
Moaid Hathot
 

Viewers also liked (14)

Building APIs with Node.js and MonogDB
Building APIs with Node.js and MonogDBBuilding APIs with Node.js and MonogDB
Building APIs with Node.js and MonogDB
Charlie Key
 
Gotta Persist 'Em All: Realm as Replacement for SQLite
Gotta Persist 'Em All: Realm as Replacement for SQLiteGotta Persist 'Em All: Realm as Replacement for SQLite
Gotta Persist 'Em All: Realm as Replacement for SQLite
Siena Aguayo
 
GraphQL & Relay
GraphQL & RelayGraphQL & Relay
GraphQL & Relay
Viacheslav Slinko
 
PUZZLES for Interviews
PUZZLES for InterviewsPUZZLES for Interviews
PUZZLES for Interviews
ambika93
 
Loopback
LoopbackLoopback
Loopback
NetProtocol Xpert
 
Daniel Ridder How to RESTify your ABAP backend
Daniel Ridder How to RESTify your ABAP backendDaniel Ridder How to RESTify your ABAP backend
Daniel Ridder How to RESTify your ABAP backend
Daniel Ridder
 
Coursera rprog 2015
Coursera rprog 2015Coursera rprog 2015
Coursera rprog 2015
Rahul K Chauhan
 
Top java script frameworks ppt
Top java script frameworks pptTop java script frameworks ppt
Top java script frameworks ppt
Omkarsoft Bangalore
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
BEEVA_es
 
The big book of mind bending puzzles
The big book of mind bending puzzlesThe big book of mind bending puzzles
The big book of mind bending puzzles
vikas kumar
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
Erik van Appeldoorn
 
Node js presentation
Node js presentationNode js presentation
Node js presentation
martincabrera
 
Node.js security
Node.js securityNode.js security
Node.js security
Maciej Lasyk
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
Vikash Singh
 
Building APIs with Node.js and MonogDB
Building APIs with Node.js and MonogDBBuilding APIs with Node.js and MonogDB
Building APIs with Node.js and MonogDB
Charlie Key
 
Gotta Persist 'Em All: Realm as Replacement for SQLite
Gotta Persist 'Em All: Realm as Replacement for SQLiteGotta Persist 'Em All: Realm as Replacement for SQLite
Gotta Persist 'Em All: Realm as Replacement for SQLite
Siena Aguayo
 
PUZZLES for Interviews
PUZZLES for InterviewsPUZZLES for Interviews
PUZZLES for Interviews
ambika93
 
Daniel Ridder How to RESTify your ABAP backend
Daniel Ridder How to RESTify your ABAP backendDaniel Ridder How to RESTify your ABAP backend
Daniel Ridder How to RESTify your ABAP backend
Daniel Ridder
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
BEEVA_es
 
The big book of mind bending puzzles
The big book of mind bending puzzlesThe big book of mind bending puzzles
The big book of mind bending puzzles
vikas kumar
 
Node js presentation
Node js presentationNode js presentation
Node js presentation
martincabrera
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
Vikash Singh
 
Ad

Similar to Picking the Right Node.js Framework for Your Use Case (20)

Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
Connect js nodejs_api_shubhra
Connect js nodejs_api_shubhraConnect js nodejs_api_shubhra
Connect js nodejs_api_shubhra
Shubhra Kar
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
Jimmy Guerrero
 
Design patterns talk_node_summit
Design patterns talk_node_summitDesign patterns talk_node_summit
Design patterns talk_node_summit
Shubhra Kar
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
ASG
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
Jonathan Abrams
 
Node summit workshop
Node summit workshopNode summit workshop
Node summit workshop
Shubhra Kar
 
Stratos and PaaS for London Java Community
Stratos and PaaS for London Java CommunityStratos and PaaS for London Java Community
Stratos and PaaS for London Java Community
Paul Fremantle
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
Matt Raible
 
Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3
Lucas Jellema
 
Lift web framework
Lift web frameworkLift web framework
Lift web framework
Petr Hošek
 
Past, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web AppsPast, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web Apps
SmartBear
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
Glen Gordon
 
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMot
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMotDelphi ORM SOA MVC SQL NoSQL JSON REST mORMot
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMot
Arnaud Bouchez
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devs
guest0a62e8
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
Sascha Wenninger
 
Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural Comparison
Adnan Masood
 
Design & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursDesign & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hours
Restlet
 
The Ultimate Full-Stack Developer Roadmap for 2025.pdf
The Ultimate Full-Stack Developer Roadmap for 2025.pdfThe Ultimate Full-Stack Developer Roadmap for 2025.pdf
The Ultimate Full-Stack Developer Roadmap for 2025.pdf
RuhiParveen6
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
Shubhra Kar
 
Connect js nodejs_api_shubhra
Connect js nodejs_api_shubhraConnect js nodejs_api_shubhra
Connect js nodejs_api_shubhra
Shubhra Kar
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
Jimmy Guerrero
 
Design patterns talk_node_summit
Design patterns talk_node_summitDesign patterns talk_node_summit
Design patterns talk_node_summit
Shubhra Kar
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
ASG
 
December 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig PresentationDecember 4 SDForum Java Sig Presentation
December 4 SDForum Java Sig Presentation
Jonathan Abrams
 
Node summit workshop
Node summit workshopNode summit workshop
Node summit workshop
Shubhra Kar
 
Stratos and PaaS for London Java Community
Stratos and PaaS for London Java CommunityStratos and PaaS for London Java Community
Stratos and PaaS for London Java Community
Paul Fremantle
 
Netbeans65 Osum Slides
Netbeans65 Osum SlidesNetbeans65 Osum Slides
Netbeans65 Osum Slides
Abhishek Gupta
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
Matt Raible
 
Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3
Lucas Jellema
 
Lift web framework
Lift web frameworkLift web framework
Lift web framework
Petr Hošek
 
Past, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web AppsPast, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web Apps
SmartBear
 
Introduction to Microsoft Silverlight
Introduction to Microsoft SilverlightIntroduction to Microsoft Silverlight
Introduction to Microsoft Silverlight
Glen Gordon
 
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMot
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMotDelphi ORM SOA MVC SQL NoSQL JSON REST mORMot
Delphi ORM SOA MVC SQL NoSQL JSON REST mORMot
Arnaud Bouchez
 
A Microsoft primer for PHP devs
A Microsoft primer for PHP devsA Microsoft primer for PHP devs
A Microsoft primer for PHP devs
guest0a62e8
 
REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)REST - What's It All About? (SAP TechEd 2012, CD110)
REST - What's It All About? (SAP TechEd 2012, CD110)
Sascha Wenninger
 
Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural Comparison
Adnan Masood
 
Design & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursDesign & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hours
Restlet
 
The Ultimate Full-Stack Developer Roadmap for 2025.pdf
The Ultimate Full-Stack Developer Roadmap for 2025.pdfThe Ultimate Full-Stack Developer Roadmap for 2025.pdf
The Ultimate Full-Stack Developer Roadmap for 2025.pdf
RuhiParveen6
 
Ad

Recently uploaded (20)

Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 

Picking the Right Node.js Framework for Your Use Case

  • 1. Shubhra Kar | Products & Education twitter:@shubhrakar Frameworks or a Design Pattern ?
  • 2. About me u J2EE and SOA architect u Performance architect u Node, mBaaS & APIs
  • 3. These guys sent me ! Bert Belder Ben Noordhuis Node/io Core Raymond Feng Ritchie Martori LoopBack & Express Core Sam Roberts Miroslav Bajtos Ryan Graham
  • 5. No IO bottlenecksHighly Concurrent Very Fast JIT compiled Node.js is emerging as the answer Reduce infrastructure by 5XScalable Lightweight, JS back and front, HeadlessFull stack Write and maintain 50% lesser codeSimple Suited for mobile and IoTEvented & JSON Biggest OSS community on the planetEcosystem
  • 7. Evolution is inevitable ! Thick Web SaaS Mobile IoT
  • 8. Frameworks evolve as well ! •  Callback •  Reactor •  Observer •  Express •  HAPI •  Restify •  Total •  Partial •  Loopback •  Parse •  Meteor •  Feedhenry* •  Loopback •  Sails •  Meteor •  Geddy •  Loopback •  NodeRED •  Proprietary KISS MVC MBaaS ORM/ MEAN Micro/ loT
  • 9. Pattern 0: Natal patterns Philosophy: KISS (Keep It Simple Stupid) u small core u small modules u small surface area Patterns u reactor u callback u module u observer
  • 10. Pattern 1: Convention HTTP Server Library REST HTTP Library Simple MVC Structure
  • 11. Pros and Cons Express DIY HTTP Routing, Middleware, Templating Simple Web Apps Github Stars – 19K Commercial Support - StrongLoop CLI App Generator Export API definition with strong-remoting Connect/Express middleware extensions Vast Ecosystem and low learning curve StrongLoop DevOps tooling support Manual CRUD endpoints Manual recursive refactoring/testing No Data source Support No Client SDK No ACL (Fine Authorization) Restify DIY Simplicity, Rest Routing Simple REST API Github Stars – 3K Commercial Support - Joyent Yeoman Generator SPDY Support Dtrace Support No export of API definition No Data source Support No Extensions of significance Manual CRUD endpoints Manual recursive refactoring/testing Limited Ecosystem No ACL (Fine Authorization)
  • 12. Router in Express StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015  
  • 13. Router in Restify StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015  
  • 14. Pattern 2: Configuration HTTP Server Framework Hapi Opinionated Modularity, Security, HTTP Server control Complex Web Apps, APIs Github Stars – 4K Commercial Support - None Yeoman Generator No export of API definition Hapi Plugins – Joi, bell, bassmaster, etc Limited ecosystem as compared to Express; but does support templates with plugins Swagger support for API documentation Very limited Data source support – Mongo, Postgres, leveldb No Client SDK No ACL (Fine Authorization)
  • 15. Router in hapi StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015  
  • 16. Pattern 3 : Full Stack JS à lends into pattern 4 {“..”} JSON is the new first class citizen
  • 17. Pattern 4: ORM & Isomorphic JS u Model Driven Development u Any data source u Isomorphic JS u Omni-Channel u Share Models (Client/Server) u Loopback & Meteor u Automatic REST API generation, routing, etc u Common Weakness : Higher Learning Curve
  • 18. Sails Opinionated Web MVC framework WebApps, API Rails familiarity, MVC Github Stars – 10 K (older) Commercial Support - None Yeoman Generator StrongLoop DevOps tooling support No export of API definition Limited data sources – MySQL, Mongo, Postgresql, memory/file No Extensions of significance Limited Ecosystem No ACL (Fine Authorization) No Client SDKs Pros and Cons
  • 19. Loopback Opinionated API framework Complex Web Apps and APIs Modularity, Scaffolding, Enterprise Connectivity Github Stars – 4 K (newer) Commercial Support - StrongLoop CLI Code Generator, Visual API composer, API explorer Export API definition Extensions like Push, File Storage, Passport, Oauth 2.0, Express Middleware Vast Connector ecosystem and extend express Auto CRUD Swagger UI and Code Generator DataSources like Mongo, mySQL, Oracle, SOAP, REST, SQLServer, Memory/File, Postgresql, Email, ATG, Couchbase, Apache Kafka, and many ore Client SDK – Angular, Browser, IOS, Android, Node.js Mature ACL (Fine Authorization), API Gateway Pros and Cons
  • 20. Developer SDKs ORM & Isomorphic JS – Loopback.io JS client JS Server Remoting JS client Replication Pub Sub
  • 21. Router & Swagger in Loopback StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015  
  • 23. Sub-pattern : Schema Discovery
  • 25. mBaaS could be on cloud or premises u Closed Source / Commercial u Open Source Key API u Push Notification u Geo Location u Offline Sync u Storage u User Management u Metering, Analytics u Native SDK u Isomorphic JS
  • 26. REST API PUSH GEO OFF SYNC DEVICE USER FILE Relational Database Clustered Database Security Gateway Cloud Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Quick Example of Use App Server Storage Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( not sure on this one) Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Items for ACL Quick Example of Use App Server Add On App Server REST API GATEWAY Channel SDKs API ENGINE C O N N E C T O R s A P I S D K s Open Source ORM, mBaaS and API framework REST API Security Gateway Cloud Firewall SOA Bus ( not sure on this one) e IoT SDK API SERVER Items for ACL Quick Example of Use App Server Add On App Server API Explorer
  • 29. Wait …what is this API Gateway Thing then ?
  • 31. Security & Social Logins Why not an node.js API Gateway pattern ? Pattern 6 API Clients API Gateway API Server API
  • 32. Internet of Everything The devices are taking over !!! Microsecond latencies are the norm
  • 33. API “Decomposition” is the game changer {JSON} {JSON} {JSON}<SOAP/XML> <TABLE> Web SaaS Mobile loT HTML JSON App Server API Server
  • 34. Is micro services a pattern too ? Not just infrastructure virtualization !
  • 35. Pattern 7: Micro-services (Design Time) Client SDK REST Endpoints Store Cache API Micro Services One URL Space SL API PaaS REST/JSON API Gateway Router Remoting Model API Orchestrator Cloud Services Model Model Connector Connector Connectors
  • 37. Now I know !!!
  • 40. First there was Node Thank you! JUST WIN, BABY!