Submit Search
Upload
Microservices using Node.js and RabbitMQ
•
2 likes
•
1,087 views
Carolina Pascale Campos
Follow
This is the talk I presented on BrazilJS 2017.
Read less
Read more
Technology
Report
Share
Report
Share
1 of 100
Download now
Download to read offline
Recommended
Rake Receiver
Rake Receiver
ManochandarThenralma
Introduction to Mobile Ad hoc Networks
Introduction to Mobile Ad hoc Networks
Sayed Chhattan Shah
Manet
Manet
Rajan Kumar
Power Management in Wireless Sensor Network
Power Management in Wireless Sensor Network
Bhavik Panchal
Report on WIRELESS SENSOR NETWORK
Report on WIRELESS SENSOR NETWORK
Nishant Bhardwaj
Ip packet delivery
Ip packet delivery
SOURABH KUMAR
Sensor Networks Introduction and Architecture
Sensor Networks Introduction and Architecture
PeriyanayagiS
Lecture 11 14. Adhoc routing protocols cont..
Lecture 11 14. Adhoc routing protocols cont..
Chandra Meena
Recommended
Rake Receiver
Rake Receiver
ManochandarThenralma
Introduction to Mobile Ad hoc Networks
Introduction to Mobile Ad hoc Networks
Sayed Chhattan Shah
Manet
Manet
Rajan Kumar
Power Management in Wireless Sensor Network
Power Management in Wireless Sensor Network
Bhavik Panchal
Report on WIRELESS SENSOR NETWORK
Report on WIRELESS SENSOR NETWORK
Nishant Bhardwaj
Ip packet delivery
Ip packet delivery
SOURABH KUMAR
Sensor Networks Introduction and Architecture
Sensor Networks Introduction and Architecture
PeriyanayagiS
Lecture 11 14. Adhoc routing protocols cont..
Lecture 11 14. Adhoc routing protocols cont..
Chandra Meena
Iris segmentation analysis using integro differential operator and hough tran...
Iris segmentation analysis using integro differential operator and hough tran...
Nadeer Abu Jraerr
WSN presentation
WSN presentation
Braj Raj Singh
Manet ppt
Manet ppt
sandeep Kaur
12. mobile ip
12. mobile ip
Natasha Malhotra
Clusters techniques
Clusters techniques
rajshreemuthiah
Wireless sensor network and its application
Wireless sensor network and its application
Roma Vyas
Zone Routing Protocol
Zone Routing Protocol
nitss007
DSR Protocol
DSR Protocol
@zenafaris91
Attacks in MANET
Attacks in MANET
Sunita Sahu
Mobile ad hoc networking: imperatives and challenges
Mobile ad hoc networking: imperatives and challenges
guest1b5f71
Patients Medical Records - Paper Based vs Electronic Medical Records (EMR)
Patients Medical Records - Paper Based vs Electronic Medical Records (EMR)
SoftClinic Software
MULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
MULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
vtunotesbysree
Dynamic Itemset Counting
Dynamic Itemset Counting
Tarat Diloksawatdikul
Multi-Class Stress Detection Through Heart Rate Variability A Deep Neural Net...
Multi-Class Stress Detection Through Heart Rate Variability A Deep Neural Net...
Shakas Technologies
Handover in Mobile Computing
Handover in Mobile Computing
KABILESH RAMAR
Unit 2-basic wireless sensor
Unit 2-basic wireless sensor
Deepika,Assistant Professor,PES College of Engineering ,Mandya
Wireless sensor networks
Wireless sensor networks
Zaahir Salam
Telemedicine
Telemedicine
samthamby79
MOBILE Ad-Hoc NETWORK (MANET)
MOBILE Ad-Hoc NETWORK (MANET)
Monodip Singha Roy
Security in mobile ad hoc networks
Security in mobile ad hoc networks
Piyush Mittal
Distributes objects and Rmi
Distributes objects and Rmi
Mayank Jain
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
Sebastian Springer
More Related Content
What's hot
Iris segmentation analysis using integro differential operator and hough tran...
Iris segmentation analysis using integro differential operator and hough tran...
Nadeer Abu Jraerr
WSN presentation
WSN presentation
Braj Raj Singh
Manet ppt
Manet ppt
sandeep Kaur
12. mobile ip
12. mobile ip
Natasha Malhotra
Clusters techniques
Clusters techniques
rajshreemuthiah
Wireless sensor network and its application
Wireless sensor network and its application
Roma Vyas
Zone Routing Protocol
Zone Routing Protocol
nitss007
DSR Protocol
DSR Protocol
@zenafaris91
Attacks in MANET
Attacks in MANET
Sunita Sahu
Mobile ad hoc networking: imperatives and challenges
Mobile ad hoc networking: imperatives and challenges
guest1b5f71
Patients Medical Records - Paper Based vs Electronic Medical Records (EMR)
Patients Medical Records - Paper Based vs Electronic Medical Records (EMR)
SoftClinic Software
MULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
MULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
vtunotesbysree
Dynamic Itemset Counting
Dynamic Itemset Counting
Tarat Diloksawatdikul
Multi-Class Stress Detection Through Heart Rate Variability A Deep Neural Net...
Multi-Class Stress Detection Through Heart Rate Variability A Deep Neural Net...
Shakas Technologies
Handover in Mobile Computing
Handover in Mobile Computing
KABILESH RAMAR
Unit 2-basic wireless sensor
Unit 2-basic wireless sensor
Deepika,Assistant Professor,PES College of Engineering ,Mandya
Wireless sensor networks
Wireless sensor networks
Zaahir Salam
Telemedicine
Telemedicine
samthamby79
MOBILE Ad-Hoc NETWORK (MANET)
MOBILE Ad-Hoc NETWORK (MANET)
Monodip Singha Roy
Security in mobile ad hoc networks
Security in mobile ad hoc networks
Piyush Mittal
What's hot
(20)
Iris segmentation analysis using integro differential operator and hough tran...
Iris segmentation analysis using integro differential operator and hough tran...
WSN presentation
WSN presentation
Manet ppt
Manet ppt
12. mobile ip
12. mobile ip
Clusters techniques
Clusters techniques
Wireless sensor network and its application
Wireless sensor network and its application
Zone Routing Protocol
Zone Routing Protocol
DSR Protocol
DSR Protocol
Attacks in MANET
Attacks in MANET
Mobile ad hoc networking: imperatives and challenges
Mobile ad hoc networking: imperatives and challenges
Patients Medical Records - Paper Based vs Electronic Medical Records (EMR)
Patients Medical Records - Paper Based vs Electronic Medical Records (EMR)
MULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
MULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
Dynamic Itemset Counting
Dynamic Itemset Counting
Multi-Class Stress Detection Through Heart Rate Variability A Deep Neural Net...
Multi-Class Stress Detection Through Heart Rate Variability A Deep Neural Net...
Handover in Mobile Computing
Handover in Mobile Computing
Unit 2-basic wireless sensor
Unit 2-basic wireless sensor
Wireless sensor networks
Wireless sensor networks
Telemedicine
Telemedicine
MOBILE Ad-Hoc NETWORK (MANET)
MOBILE Ad-Hoc NETWORK (MANET)
Security in mobile ad hoc networks
Security in mobile ad hoc networks
Similar to Microservices using Node.js and RabbitMQ
Distributes objects and Rmi
Distributes objects and Rmi
Mayank Jain
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
Sebastian Springer
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS Application
Ben Hall
gRPC in Go
gRPC in Go
Almog Baku
How to make a high-quality Node.js app, Nikita Galkin
How to make a high-quality Node.js app, Nikita Galkin
Sigma Software
RESTful API In Node Js using Express
RESTful API In Node Js using Express
Jeetendra singh
Future Decoded - Node.js per sviluppatori .NET
Future Decoded - Node.js per sviluppatori .NET
Gianluca Carucci
Remote Procedure Call
Remote Procedure Call
Nadia Nahar
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Massimiliano Dessì
GraphQL Bangkok Meetup 2.0
GraphQL Bangkok Meetup 2.0
Tobias Meixner
FwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.js
Timur Shemsedinov
ECMAScript 6 and the Node Driver
ECMAScript 6 and the Node Driver
MongoDB
Building and Scaling Node.js Applications
Building and Scaling Node.js Applications
Ohad Kravchick
Rxjs marble-testing
Rxjs marble-testing
Christoffer Noring
2016 W3C Conference #4 : ANGULAR + ES6
2016 W3C Conference #4 : ANGULAR + ES6
양재동 코드랩
[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6
양재동 코드랩
Testing in android
Testing in android
jtrindade
Lambdas puzzler - Peter Lawrey
Lambdas puzzler - Peter Lawrey
JAXLondon_Conference
Node js introduction
Node js introduction
Alex Su
Developing web-apps like it's 2013
Developing web-apps like it's 2013
Laurent_VB
Similar to Microservices using Node.js and RabbitMQ
(20)
Distributes objects and Rmi
Distributes objects and Rmi
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS Application
gRPC in Go
gRPC in Go
How to make a high-quality Node.js app, Nikita Galkin
How to make a high-quality Node.js app, Nikita Galkin
RESTful API In Node Js using Express
RESTful API In Node Js using Express
Future Decoded - Node.js per sviluppatori .NET
Future Decoded - Node.js per sviluppatori .NET
Remote Procedure Call
Remote Procedure Call
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
GraphQL Bangkok Meetup 2.0
GraphQL Bangkok Meetup 2.0
FwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.js
ECMAScript 6 and the Node Driver
ECMAScript 6 and the Node Driver
Building and Scaling Node.js Applications
Building and Scaling Node.js Applications
Rxjs marble-testing
Rxjs marble-testing
2016 W3C Conference #4 : ANGULAR + ES6
2016 W3C Conference #4 : ANGULAR + ES6
[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6
Testing in android
Testing in android
Lambdas puzzler - Peter Lawrey
Lambdas puzzler - Peter Lawrey
Node js introduction
Node js introduction
Developing web-apps like it's 2013
Developing web-apps like it's 2013
Recently uploaded
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
ThousandEyes
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
Mydbops
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
LoriGlavin3
A Framework for Development in the AI Age
A Framework for Development in the AI Age
Cprime
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
Hiroshi SHIBATA
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
Skynet Technologies
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
BookNet Canada
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Alkin Tezuysal
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
LoriGlavin3
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
panagenda
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
Inflectra
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
UiPathCommunity
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
ThousandEyes
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
panagenda
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
Farhan Tariq
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
AliaaTarek5
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
Curtis Poe
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Alan Dix
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
LoriGlavin3
Recently uploaded
(20)
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
A Framework for Development in the AI Age
A Framework for Development in the AI Age
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Microservices using Node.js and RabbitMQ
1.
MICROSERVICES USING NODE.JS AND RABBITMQ
2.
3.
Case
4.
Share your location with
your friends
5.
6.
API Back-end
7.
Key = DevOps
8.
Microservices ↓ Microdeployments
9.
Reasons
10.
Team
11.
Architecture
12.
Best Practices
13.
Code Review
14.
Tests
15.
Continuous Integration
16.
Continuous Delivery
17.
Continuous Monitoring
18.
User Message Lorem Ipsum Dolor Sit Amet
19.
Libraries
20.
Results after 10 months
21.
Startup 5 back-end developers 7
micro-services
22.
Positives
23.
New technologies
24.
Minimum effort/impact
25.
MySQL MySQL Postgre SQL Postgre SQL MySQL Postgre SQL Postgre SQL
26.
Polyglot Persistence
27.
Decoupled Code
28.
Each service has a scope
29.
Negatives
30.
Shotgun effect
31.
32.
Granular Release
33.
Unstable Interfaces
34.
User Message
35.
Integration Tests
36.
Slow
37.
Docker
38.
New developers
39.
User-service dependency
40.
User Message Lorem Ipsum Dolor Sit Amet
41.
Lorem Ipsum Dolor Amet
42.
Microservices
43.
44.
Client Server
45.
Server
46.
1 const express
= require('express'); 2 const bodyParser = require('body-parser'); 3 4 const app = express(); 5 app.use(bodyParser.json()); 6 7 app.listen(3000, () => { 8 console.log(' [x] Awaiting for requests'); 9 }); 10 11 app.get('/:id', (request, response) => { 12 const id = request.params.id; 13 14 console.log(` [.] ID ${id}`); 15 16 response.status(200).json({ 17 data: { 18 name: 'Ada Lovelace', 19 occupation: 'Programmer' 20 } 21 }); 22 });
47.
1 app.listen(3000, ()
=> { 2 console.log(' [x] Awaiting for requests'); 3 }); 4 5 app.get('/:id', (request, response) => { 6 const id = request.params.id; 7 8 console.log(` [.] ID ${id}`); 9 10 response.status(200).json({ 11 data: { 12 name: 'Ada Lovelace', 13 occupation: 'Programmer' 14 } 15 }); 16 });
48.
Client
49.
1 const express
= require('express'); 2 const request = require('request-promise'); 3 4 const id = process.argv.slice(2); 5 6 const app = express(); 7 8 app.listen(3005, () => { 9 console.log(` [x] Requesting user ${id}`); 10 11 request(`http://localhost:3000/${id}`) 12 .then((res) => { 13 return console.log(` [.] Got ${res}`) 14 }); 15 });
50.
1 const id
= process.argv.slice(2); 2 3 app.listen(3005, () => { 4 console.log(` [x] Requesting user ${id}`); 5 6 request(`http://localhost:3000/${id}`) 7 .then((res) => { 8 return console.log(` [.] Got ${res}`) 9 }); 10 });
51.
Result
52.
53.
Client
54.
Fault resilience
55.
Message Broker
56.
57.
AMPQ Advanced Message Queuing Protocol
58.
Exchange asynchronous messages
59.
Reliability
60.
RPC Remote Procedure Call
61.
62.
Queueing
63.
Client ServerRPC
64.
Server
65.
1 const amqp
= require('amqplib/callback_api'); 2 3 amqp.connect('amqp://localhost', (err, conn) => { 4 conn.createChannel((err, ch) => { 5 const q = 'rpc_queue'; 6 7 ch.assertQueue(q, { durable: false }); 8 ch.prefetch(1); 9 10 console.log(' [x] Awaiting RPC requests'); 11 12 ch.consume(q, function reply(msg) { 13 const id = parseInt(msg.content.toString(), 10); 14 15 console.log(` [.] ID ${id}`); 16 17 ch.sendToQueue(msg.properties.replyTo, 18 new Buffer('name: Ada Lovelace, occupation: programmer'), 19 { correlationId: msg.properties.correlationId }); 20 21 ch.ack(msg); 22 }); 23 }); 24 });
66.
rpc_queue Response Channel 3 amqp.connect('amqp://localhost', (err,
conn) => { 4 conn.createChannel((err, ch) => { 5 const q = 'rpc_queue';
67.
Retrieve message from rpc_queue 12
ch.consume(q, function reply(msg) { 13 const id = parseInt(msg.content.toString(), 10); 14 15 console.log(` [.] ID ${id}`);
68.
Send response to callback
queue 17 ch.sendToQueue(msg.properties.replyTo, 18 new Buffer('name: Ada Lovelace, occupation: programmer’), 19 { correlationId: msg.properties.correlationId });
69.
Client
70.
1 const amqp
= require('amqplib/callback_api'); 2 const uuid = require('uuid'); 3 4 const id = process.argv.slice(2); 5 6 amqp.connect('amqp://localhost', (err, conn) => { 7 conn.createChannel((err, ch) => { 8 ch.assertQueue('', { exclusive: true }, (err, q) => { 9 10 const corr = uuid(); 11 console.log(` [x] Requesting user ${id}`); 12 13 ch.consume(q.queue, (msg) => { 14 if (msg.properties.correlationId === corr) { 15 console.log(` [.] Got ${msg.content.toString()}`); 16 setTimeout(function() { conn.close(); process.exit(0) }, 500); 17 } 18 }, {noAck: true}); 19 20 ch.sendToQueue('rpc_queue', 21 new Buffer(id.toString()), 22 { correlationId: corr, replyTo: q.queue }); 23 }); 24 }); 25 });
71.
Callback Queue Request Channel 6 amqp.connect('amqp://localhost',
(err, conn) => { 7 conn.createChannel((err, ch) => { 8 ch.assertQueue('', { exclusive: true }, (err, q) => {
72.
Request to rpc_queue 10
const corr = uuid(); 20 ch.sendToQueue('rpc_queue', 21 new Buffer(id.toString()), 22 { correlationId: corr, replyTo: q.queue });
73.
Retrieve response from callback
queue 13 ch.consume(q.queue, (msg) => { 14 if (msg.properties.correlationId === corr) { 15 console.log(` [.] Got ${msg.content.toString()}`); 16 setTimeout(function() { conn.close(); process.exit(0) }, 500); 17 } 18 }, {noAck: true});
74.
Result
75.
76.
Scalability
77.
Round-Robin
78.
Queues Performance
79.
Conclusion
80.
81.
Any organization that
designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure. Conway's Law
82.
Engineering
83.
Trade-Off
84.
How to solve my
team problems?
85.
Shotgun effect Unstable interfaces Integration
tests User-service dependency
86.
Monolith
87.
Partially
88.
User Message Lorem Ipsum Dolor Sit Amet
89.
User LoremIpsum
90.
Shotgun effect Unstable interfaces Integration
tests User-service dependency
91.
Community
92.
93.
94.
95.
96.
97.
98.
Let technology empower you!
99.
Thanks!
100.
https://github.com/carolpc https://twitter.com/CarolinaPascale carolina.pascale.c@gmail.com
Download now