SlideShare a Scribd company logo
1 of 100
Download to read offline
MICROSERVICES USING
NODE.JS AND
RABBITMQ
Case
Share your location
with your friends
API
Back-end
Key = DevOps
Microservices
↓
Microdeployments
Reasons
Team
Architecture
Best
Practices
Code
Review
Tests
Continuous
Integration
Continuous
Delivery
Continuous
Monitoring
User Message
Lorem
Ipsum
Dolor
Sit
Amet
Libraries
Results
after
10 months
Startup
5 back-end developers
7 micro-services
Positives
New
technologies
Minimum
effort/impact
MySQL
MySQL
Postgre
SQL
Postgre
SQL
MySQL
Postgre
SQL
Postgre
SQL
Polyglot
Persistence
Decoupled
Code
Each
service has
a scope
Negatives
Shotgun
effect
Granular
Release
Unstable
Interfaces
User Message
Integration
Tests
Slow
Docker
New
developers
User-service
dependency
User Message
Lorem
Ipsum
Dolor
Sit
Amet
Lorem
Ipsum
Dolor
Amet
Microservices
Client Server
Server
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 });
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 });
Client
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 });
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 });
Result
Client
Fault
resilience
Message
Broker
AMPQ
Advanced Message Queuing
Protocol
Exchange
asynchronous
messages
Reliability
RPC
Remote Procedure Call
Queueing
Client ServerRPC
Server
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 });
rpc_queue
Response
Channel
3 amqp.connect('amqp://localhost', (err, conn) => {
4 conn.createChannel((err, ch) => {
5 const q = 'rpc_queue';
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}`);
Send response
to callback queue
17 ch.sendToQueue(msg.properties.replyTo,
18 new Buffer('name: Ada Lovelace, occupation:
programmer’),
19 { correlationId: msg.properties.correlationId });
Client
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 });
Callback Queue
Request
Channel
6 amqp.connect('amqp://localhost', (err, conn) => {
7 conn.createChannel((err, ch) => {
8 ch.assertQueue('', { exclusive: true }, (err, q) => {
Request to rpc_queue
10 const corr = uuid();
20 ch.sendToQueue('rpc_queue',
21 new Buffer(id.toString()),
22 { correlationId: corr, replyTo: q.queue });
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});
Result
Scalability
Round-Robin
Queues
Performance
Conclusion
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
Engineering
Trade-Off
How to solve
my team
problems?
Shotgun effect
Unstable interfaces
Integration tests
User-service
dependency
Monolith
Partially
User Message
Lorem
Ipsum
Dolor
Sit Amet
User LoremIpsum
Shotgun effect
Unstable interfaces
Integration tests
User-service
dependency
Community
Let technology empower
you!
Thanks!
https://github.com/carolpc
https://twitter.com/CarolinaPascale
carolina.pascale.c@gmail.com

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...Iris segmentation analysis using integro differential operator and hough tran...
Iris segmentation analysis using integro differential operator and hough tran...Nadeer Abu Jraerr
 
Wireless sensor network and its application
Wireless sensor network and its applicationWireless sensor network and its application
Wireless sensor network and its applicationRoma Vyas
 
Zone Routing Protocol
Zone Routing ProtocolZone Routing Protocol
Zone Routing Protocolnitss007
 
Attacks in MANET
Attacks in MANETAttacks in MANET
Attacks in MANETSunita Sahu
 
Mobile ad hoc networking: imperatives and challenges
Mobile ad hoc networking: imperatives and challengesMobile ad hoc networking: imperatives and challenges
Mobile ad hoc networking: imperatives and challengesguest1b5f71
 
Patients Medical Records - Paper Based vs Electronic Medical Records (EMR)
Patients Medical Records - Paper Based vs Electronic Medical Records (EMR)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 NETWORKSMULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
MULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKSvtunotesbysree
 
Multi-Class Stress Detection Through Heart Rate Variability A Deep Neural Net...
Multi-Class Stress Detection Through Heart Rate Variability A Deep Neural Net...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 ComputingHandover in Mobile Computing
Handover in Mobile ComputingKABILESH RAMAR
 
Wireless sensor networks
Wireless sensor networksWireless sensor networks
Wireless sensor networksZaahir Salam
 
Security in mobile ad hoc networks
Security in mobile ad hoc networksSecurity in mobile ad hoc networks
Security in mobile ad hoc networksPiyush 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...Iris segmentation analysis using integro differential operator and hough tran...
Iris segmentation analysis using integro differential operator and hough tran...
 
WSN presentation
WSN presentationWSN presentation
WSN presentation
 
Manet ppt
Manet pptManet ppt
Manet ppt
 
12. mobile ip
12. mobile ip12. mobile ip
12. mobile ip
 
Clusters techniques
Clusters techniquesClusters techniques
Clusters techniques
 
Wireless sensor network and its application
Wireless sensor network and its applicationWireless sensor network and its application
Wireless sensor network and its application
 
Zone Routing Protocol
Zone Routing ProtocolZone Routing Protocol
Zone Routing Protocol
 
DSR Protocol
DSR ProtocolDSR Protocol
DSR Protocol
 
Attacks in MANET
Attacks in MANETAttacks in MANET
Attacks in MANET
 
Mobile ad hoc networking: imperatives and challenges
Mobile ad hoc networking: imperatives and challengesMobile 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)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 NETWORKSMULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
MULTIPLE CHOICE QUESTIONS WITH ANSWERS ON WIRELESS SENSOR NETWORKS
 
Dynamic Itemset Counting
Dynamic Itemset CountingDynamic 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...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 ComputingHandover in Mobile Computing
Handover in Mobile Computing
 
Unit 2-basic wireless sensor
Unit 2-basic wireless sensorUnit 2-basic wireless sensor
Unit 2-basic wireless sensor
 
Wireless sensor networks
Wireless sensor networksWireless sensor networks
Wireless sensor networks
 
Telemedicine
TelemedicineTelemedicine
Telemedicine
 
MOBILE Ad-Hoc NETWORK (MANET)
MOBILE Ad-Hoc NETWORK (MANET)MOBILE Ad-Hoc NETWORK (MANET)
MOBILE Ad-Hoc NETWORK (MANET)
 
Security in mobile ad hoc networks
Security in mobile ad hoc networksSecurity 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 RmiDistributes objects and Rmi
Distributes objects and RmiMayank Jain
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsSebastian Springer
 
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationBen Hall
 
How to make a high-quality Node.js app, Nikita Galkin
How to make a high-quality Node.js app, Nikita GalkinHow to make a high-quality Node.js app, Nikita Galkin
How to make a high-quality Node.js app, Nikita GalkinSigma Software
 
RESTful API In Node Js using Express
RESTful API In Node Js using Express 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 .NETFuture Decoded - Node.js per sviluppatori .NET
Future Decoded - Node.js per sviluppatori .NETGianluca Carucci
 
Remote Procedure Call
Remote Procedure CallRemote Procedure Call
Remote Procedure CallNadia Nahar
 
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome 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.0GraphQL Bangkok Meetup 2.0
GraphQL Bangkok Meetup 2.0Tobias Meixner
 
FwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.jsFwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.jsTimur Shemsedinov
 
ECMAScript 6 and the Node Driver
ECMAScript 6 and the Node DriverECMAScript 6 and the Node Driver
ECMAScript 6 and the Node DriverMongoDB
 
Building and Scaling Node.js Applications
Building and Scaling Node.js ApplicationsBuilding and Scaling Node.js Applications
Building and Scaling Node.js ApplicationsOhad Kravchick
 
2016 W3C Conference #4 : ANGULAR + ES6
2016 W3C Conference #4 : ANGULAR + ES62016 W3C Conference #4 : ANGULAR + ES6
2016 W3C Conference #4 : ANGULAR + ES6양재동 코드랩
 
Testing in android
Testing in androidTesting in android
Testing in androidjtrindade
 
Node js introduction
Node js introductionNode js introduction
Node js introductionAlex Su
 
Developing web-apps like it's 2013
Developing web-apps like it's 2013Developing web-apps like it's 2013
Developing web-apps like it's 2013Laurent_VB
 

Similar to Microservices using Node.js and RabbitMQ (20)

Distributes objects and Rmi
Distributes objects and RmiDistributes objects and Rmi
Distributes objects and Rmi
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide 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 ApplicationReal 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 GogRPC 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 GalkinHow 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 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 .NETFuture Decoded - Node.js per sviluppatori .NET
Future Decoded - Node.js per sviluppatori .NET
 
Remote Procedure Call
Remote Procedure CallRemote Procedure Call
Remote Procedure Call
 
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome 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.0GraphQL Bangkok Meetup 2.0
GraphQL Bangkok Meetup 2.0
 
FwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.jsFwDays 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 DriverECMAScript 6 and the Node Driver
ECMAScript 6 and the Node Driver
 
Building and Scaling Node.js Applications
Building and Scaling Node.js ApplicationsBuilding and Scaling Node.js Applications
Building and Scaling Node.js Applications
 
Rxjs marble-testing
Rxjs marble-testingRxjs marble-testing
Rxjs marble-testing
 
2016 W3C Conference #4 : ANGULAR + ES6
2016 W3C Conference #4 : ANGULAR + ES62016 W3C Conference #4 : ANGULAR + ES6
2016 W3C Conference #4 : ANGULAR + ES6
 
[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6[W3C HTML5 2016] Angular + ES6
[W3C HTML5 2016] Angular + ES6
 
Testing in android
Testing in androidTesting in android
Testing in android
 
Lambdas puzzler - Peter Lawrey
Lambdas puzzler - Peter LawreyLambdas puzzler - Peter Lawrey
Lambdas puzzler - Peter Lawrey
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Developing web-apps like it's 2013
Developing web-apps like it's 2013Developing 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 ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...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.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...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...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...(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.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 .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.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure 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 RouterScale 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.pptxThe 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 AgeA 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 2024Long 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 AuditManual 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 ConsThe 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 2024Transcript: 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...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.pptxThe 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.pdfSo 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[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 HeroUiPath 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 ThousandEyesHow 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...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...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 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.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 .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.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Microservices using Node.js and RabbitMQ