SlideShare a Scribd company logo
3
Most read
12
Most read
17
Most read
Software
System
Architecture
for Node.js
Timur Shemsedinov
Research Institute of System Technologies
Local applications and console utilities
• Task runers and build systems
• Scripting, CLI, testing, documentation generation
Servers
• API and backends for SPA (AJAX/JSON, RPC, REST)
• Event delivery (for chats, games & interactive apps)
• Covering gaps in other applications
Clients
• Crawlers, data mining, testing scripts
• GUI applications (nw.js, node-webkit)
Hardware
• Control systems and production automation
#1 Classification of Node.js use
#2 Where Architecture begins?
Complexity
• The system doesn't fit in the head
• Long development
• Large teams
• Reuse abstract code
Reliability
• Confidence for owners
• Load scalability
• Team scalability
Variability
• Live systems are changes constantly
#3 Node.js and Architecture
JavaScript
node.js
io.js
Frontend developers hordes encroach invades server-side
S
B
Architectors
Conceptualists Corporate
Bullshit
JavaScript
node.js
io.js
Choosing the right allies
S
B
Architectors
Conceptualists Corporate
Bullshit
#3 Node.js and Architecture
#4 Node.js Architectural Problems
Old-style thinking inherited from:
• Languages and servers of short process life
• Frontend (web and window GUI)
• Heavy legacy of OOP
Abstraction Problems
• The applied and system code is mixed
• Abstract layers principle ис not satisfied
(from lower to higher layer)
• Inconsistency (different levels of abstraction are
mixed in a single layer)
• Attempts to separate logic and data
(impossible in Von Neumann architecture)
#5 Misconceptions about Node.js
Common architectural principles
A common architectural practices for Node.js
has not formed yet but (the worst) it is believed that
they have already formed
It seems that all out of the box...
...but pure node.js is very low-level tool
A set of incompatible:
technologies, ideas, principles and concepts
in one application
NIH (not invented here)
Good and bad aspects of NIH
#6 What is not Architecture?
• Middleware
• Routers
• Single entry point...
• Facade, singleton
• Mixin, closure
• Factory, decorator
• Class and object
• Prototype, DI etc.
• MVC, MVP, MVVM
• ORM, CRUD, Key-value
• Pull/Push, Pub/Sub
• REST, RPC и т. д.
• Clouds, SaaS, PaaS...
Code structure patterns}
OOP patterns
}GUI and DB patterns
}Communication patterns
}Deployment patterns}
#7 What is Architecture?
• Division
• naming
• and binding
#8 What is Architecture?
Architectural task
• Divide and give names, build connections
• Combine subsystems to system
Concepts and Tools Selection
• Paradigms, standards, models
• Technologies, frameworks, patterns
• Module interaction types
• Topology
• Protocols and data formats
System Integration
• Planning internal interfaces before development
• Define external interfaces and links
Asynchrony
• Lazy operations
• Maximizing memory usage
• No I/O is faster even then asyncronous I/O
State (statefull vs stateless)
• Long-living processes can afford this...
• Stateless gives nothing nowadays
• Application can't contain just pure functions
• Interactivity or large state requires stateful
Scalability
• IP and cookie sticky
• Interprocess communication
#9 Node.js Features
#10 Minimal client-server A.
Client
Server
DBMS
interface
process
request
response
Client
Server
DBMS
browser
#11 Separation and Binding
Client
Server
DBMS
browser
Client
Server
DBMS
browser
stubs and marshalling
binding
e.g. ORM
e.g. RPC
#12 Introspection and Binding
Dynamic binding
#13 Wrong Layer Separation
Client
Server
DBMS
Interface
Logic
Data
Logic
Data
Interface
#14 Right Layer Separation
Client
Server
DBMS
Interface
DataLogic
Interface
DataLogic
Interface
DataLogic
You can't opose them:
«The system distributed better
is the better centralized one»
Monolithic is not bad, bad is when we have strong coupling
between modules and loose coupling inside module.
General rules, restrictions, agreements and standards
make microservices one monolithic but the lack of
consistency leads to the fact that the system is not a
system at all, it falls into parts, it is not stable, not
operating acording to one goal as an organisms should do.
#15 Microservices vs Monolithic
Software System
Architecture
for Node.js
Timur Shemsedinov
Research Institute of System Technologies
Thank you
Your questions please

More Related Content

PPTX
C# Async Await
PPTX
Introduction to Spring Framework
PDF
Intro to functional programming
PPTX
Angular 6 Form Validation with Material
PDF
PPTX
Spring 3.x - Spring MVC - Advanced topics
PPTX
Apache web service
PPTX
Angular 5 presentation for beginners
C# Async Await
Introduction to Spring Framework
Intro to functional programming
Angular 6 Form Validation with Material
Spring 3.x - Spring MVC - Advanced topics
Apache web service
Angular 5 presentation for beginners

What's hot (20)

PDF
Cosco: An Efficient Facebook-Scale Shuffle Service
PPTX
Introduction to Spring Boot
PPT
Php Presentation
PPTX
What is Angular?
PDF
REST API Best (Recommended) Practices
PDF
AngularJS - Services
PPTX
Asp.net file types
PDF
Building an API with Django and Django REST Framework
PDF
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
PDF
Web Services PHP Tutorial
PPT
JavaScript Basics
PDF
C# Delegates and Event Handling
PDF
Next.js Introduction
PDF
Apache Kafka Architecture & Fundamentals Explained
PDF
TypeScript: coding JavaScript without the pain
PDF
SwiftUI For Production | try! Swift 2019
PDF
Building a SIMD Supported Vectorized Native Engine for Spark SQL
PPTX
Express js
PDF
Spark 2.x Troubleshooting Guide
 
Cosco: An Efficient Facebook-Scale Shuffle Service
Introduction to Spring Boot
Php Presentation
What is Angular?
REST API Best (Recommended) Practices
AngularJS - Services
Asp.net file types
Building an API with Django and Django REST Framework
Guidelines for moving from Oracle Forms to Oracle ADF and SOA
Web Services PHP Tutorial
JavaScript Basics
C# Delegates and Event Handling
Next.js Introduction
Apache Kafka Architecture & Fundamentals Explained
TypeScript: coding JavaScript without the pain
SwiftUI For Production | try! Swift 2019
Building a SIMD Supported Vectorized Native Engine for Spark SQL
Express js
Spark 2.x Troubleshooting Guide
 
Ad

Viewers also liked (20)

PDF
Webconf nodejs-production-architecture
PDF
Anatomy of a Modern Node.js Application Architecture
KEY
Node.js - Best practices
PPTX
Introduction to Node.js
PDF
Nodejs Explained with Examples
PPT
Scalability using Node.js
PDF
Reactive Web-Applications @ LambdaDays
PPTX
Rapid API development examples for Impress Application Server / Node.js (jsfw...
PPTX
Impress Application Server for node.js (en)
PPTX
Secure Coding for NodeJS
PDF
Keymetrics pm2
PDF
Passport Nodejs Lightening Talk
PDF
Javascript Client & Server Architectures
PDF
[Js hcm] Deploying node.js with Forever.js and nginx
PDF
Node Architecture and Getting Started with Express
PDF
Getting Started with the Node.js LoopBack APi Framework
KEY
node.js: Javascript's in your backend
PDF
Node.js Enterprise Middleware
PDF
Angular2 - getting-ready
Webconf nodejs-production-architecture
Anatomy of a Modern Node.js Application Architecture
Node.js - Best practices
Introduction to Node.js
Nodejs Explained with Examples
Scalability using Node.js
Reactive Web-Applications @ LambdaDays
Rapid API development examples for Impress Application Server / Node.js (jsfw...
Impress Application Server for node.js (en)
Secure Coding for NodeJS
Keymetrics pm2
Passport Nodejs Lightening Talk
Javascript Client & Server Architectures
[Js hcm] Deploying node.js with Forever.js and nginx
Node Architecture and Getting Started with Express
Getting Started with the Node.js LoopBack APi Framework
node.js: Javascript's in your backend
Node.js Enterprise Middleware
Angular2 - getting-ready
Ad

Similar to Node.js architecture (EN) (20)

PDF
Node.js
PDF
Composable Software Architecture with Spring
PDF
Software Architecture and Architectors: useless VS valuable
PDF
Architectural Decisions: Smoothly and Consistently
PDF
Architectural Decisions: Smoothly and Consistently
PDF
Full Stack Developer Course | Infinite Graphix Technologies
PPTX
Kiss.ts - The Keep It Simple Software Stack for 2017++
PDF
Microservices - opportunities, dilemmas and problems
PDF
DCEU 18: From Monolith to Microservices
PDF
Modern software architectures - PHP UK Conference 2015
PDF
Coding Secure Infrastructure in the Cloud using the PIE framework
PPTX
Exploring microservices in a Microsoft landscape
PDF
SGCE 2015 REST APIs
PDF
APIs distribuidos con alta escalabilidad
PPTX
Cross-platform interaction
PPT
Introduction to node.js aka NodeJS
PPTX
Cqrs.frameworks
PPTX
After the LAMP, it's time to get MEAN
PPTX
6 weeks 6 months live project summer industrial training in cmc limited 2012
PPTX
Pros & Cons of Microservices Architecture
Node.js
Composable Software Architecture with Spring
Software Architecture and Architectors: useless VS valuable
Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
Full Stack Developer Course | Infinite Graphix Technologies
Kiss.ts - The Keep It Simple Software Stack for 2017++
Microservices - opportunities, dilemmas and problems
DCEU 18: From Monolith to Microservices
Modern software architectures - PHP UK Conference 2015
Coding Secure Infrastructure in the Cloud using the PIE framework
Exploring microservices in a Microsoft landscape
SGCE 2015 REST APIs
APIs distribuidos con alta escalabilidad
Cross-platform interaction
Introduction to node.js aka NodeJS
Cqrs.frameworks
After the LAMP, it's time to get MEAN
6 weeks 6 months live project summer industrial training in cmc limited 2012
Pros & Cons of Microservices Architecture

More from Timur Shemsedinov (20)

PDF
How to use Chat GPT in JavaScript optimizations for Node.js
PDF
IT Revolution in 2023-2024: AI, GPT, business transformation, future professi...
PDF
Multithreading in Node.js and JavaScript
PDF
Node.js threads for I/O-bound tasks
PDF
Node.js Меньше сложности, больше надежности Holy.js 2021
PDF
Rethinking low-code
PDF
Hat full of developers
PDF
FwDays 2021: Metarhia Technology Stack for Node.js
PDF
Node.js for enterprise - JS Conference
PDF
Node.js for enterprise 2021 - JavaScript Fwdays 3
PDF
Node.js in 2021
PDF
Node.js middleware: Never again!
PDF
Patterns and antipatterns
PDF
Race-conditions-web-locks-and-shared-memory
PDF
Asynchronous programming and mutlithreading
PDF
Node.js in 2020 - part 3
PDF
Node.js in 2020 - part 2
PDF
Information system structure and architecture
PDF
Node.js in 2020 - part 1
PDF
Web Locks API
How to use Chat GPT in JavaScript optimizations for Node.js
IT Revolution in 2023-2024: AI, GPT, business transformation, future professi...
Multithreading in Node.js and JavaScript
Node.js threads for I/O-bound tasks
Node.js Меньше сложности, больше надежности Holy.js 2021
Rethinking low-code
Hat full of developers
FwDays 2021: Metarhia Technology Stack for Node.js
Node.js for enterprise - JS Conference
Node.js for enterprise 2021 - JavaScript Fwdays 3
Node.js in 2021
Node.js middleware: Never again!
Patterns and antipatterns
Race-conditions-web-locks-and-shared-memory
Asynchronous programming and mutlithreading
Node.js in 2020 - part 3
Node.js in 2020 - part 2
Information system structure and architecture
Node.js in 2020 - part 1
Web Locks API

Recently uploaded (20)

PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
System and Network Administraation Chapter 3
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Introduction to Artificial Intelligence
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Online Work Permit System for Fast Permit Processing
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
CHAPTER 2 - PM Management and IT Context
Operating system designcfffgfgggggggvggggggggg
Upgrade and Innovation Strategies for SAP ERP Customers
System and Network Administraation Chapter 3
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
ISO 45001 Occupational Health and Safety Management System
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Odoo POS Development Services by CandidRoot Solutions
ManageIQ - Sprint 268 Review - Slide Deck
VVF-Customer-Presentation2025-Ver1.9.pptx
Which alternative to Crystal Reports is best for small or large businesses.pdf
Introduction to Artificial Intelligence
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf

Node.js architecture (EN)

  • 2. Local applications and console utilities • Task runers and build systems • Scripting, CLI, testing, documentation generation Servers • API and backends for SPA (AJAX/JSON, RPC, REST) • Event delivery (for chats, games & interactive apps) • Covering gaps in other applications Clients • Crawlers, data mining, testing scripts • GUI applications (nw.js, node-webkit) Hardware • Control systems and production automation #1 Classification of Node.js use
  • 3. #2 Where Architecture begins? Complexity • The system doesn't fit in the head • Long development • Large teams • Reuse abstract code Reliability • Confidence for owners • Load scalability • Team scalability Variability • Live systems are changes constantly
  • 4. #3 Node.js and Architecture JavaScript node.js io.js Frontend developers hordes encroach invades server-side S B Architectors Conceptualists Corporate Bullshit
  • 5. JavaScript node.js io.js Choosing the right allies S B Architectors Conceptualists Corporate Bullshit #3 Node.js and Architecture
  • 6. #4 Node.js Architectural Problems Old-style thinking inherited from: • Languages and servers of short process life • Frontend (web and window GUI) • Heavy legacy of OOP Abstraction Problems • The applied and system code is mixed • Abstract layers principle ис not satisfied (from lower to higher layer) • Inconsistency (different levels of abstraction are mixed in a single layer) • Attempts to separate logic and data (impossible in Von Neumann architecture)
  • 7. #5 Misconceptions about Node.js Common architectural principles A common architectural practices for Node.js has not formed yet but (the worst) it is believed that they have already formed It seems that all out of the box... ...but pure node.js is very low-level tool A set of incompatible: technologies, ideas, principles and concepts in one application NIH (not invented here) Good and bad aspects of NIH
  • 8. #6 What is not Architecture? • Middleware • Routers • Single entry point... • Facade, singleton • Mixin, closure • Factory, decorator • Class and object • Prototype, DI etc. • MVC, MVP, MVVM • ORM, CRUD, Key-value • Pull/Push, Pub/Sub • REST, RPC и т. д. • Clouds, SaaS, PaaS... Code structure patterns} OOP patterns }GUI and DB patterns }Communication patterns }Deployment patterns}
  • 9. #7 What is Architecture? • Division • naming • and binding
  • 10. #8 What is Architecture? Architectural task • Divide and give names, build connections • Combine subsystems to system Concepts and Tools Selection • Paradigms, standards, models • Technologies, frameworks, patterns • Module interaction types • Topology • Protocols and data formats System Integration • Planning internal interfaces before development • Define external interfaces and links
  • 11. Asynchrony • Lazy operations • Maximizing memory usage • No I/O is faster even then asyncronous I/O State (statefull vs stateless) • Long-living processes can afford this... • Stateless gives nothing nowadays • Application can't contain just pure functions • Interactivity or large state requires stateful Scalability • IP and cookie sticky • Interprocess communication #9 Node.js Features
  • 12. #10 Minimal client-server A. Client Server DBMS interface process request response Client Server DBMS browser
  • 13. #11 Separation and Binding Client Server DBMS browser Client Server DBMS browser stubs and marshalling binding e.g. ORM e.g. RPC
  • 14. #12 Introspection and Binding Dynamic binding
  • 15. #13 Wrong Layer Separation Client Server DBMS Interface Logic Data Logic Data Interface
  • 16. #14 Right Layer Separation Client Server DBMS Interface DataLogic Interface DataLogic Interface DataLogic
  • 17. You can't opose them: «The system distributed better is the better centralized one» Monolithic is not bad, bad is when we have strong coupling between modules and loose coupling inside module. General rules, restrictions, agreements and standards make microservices one monolithic but the lack of consistency leads to the fact that the system is not a system at all, it falls into parts, it is not stable, not operating acording to one goal as an organisms should do. #15 Microservices vs Monolithic
  • 18. Software System Architecture for Node.js Timur Shemsedinov Research Institute of System Technologies Thank you Your questions please

Editor's Notes

  • #3: Серверы – события - Websocket, SSE <number>
  • #4: <number>
  • #5: <number>
  • #6: <number>
  • #7: Предыдущим языком или техно логическим стеком Слоев или вообще нет или в одном слое используются абстракции разного уровня <number>
  • #8: Предыдущим языком или техно логическим стеком Слоев или вообще нет или в одном слое используются абстракции разного уровня <number>
  • #9: <number>
  • #10: <number>
  • #11: <number>
  • #12: <number>
  • #13: <number>
  • #14: <number>
  • #15: <number>
  • #16: <number>
  • #17: <number>
  • #18: <number>
  • #19: <number>