SlideShare a Scribd company logo
Integrating PostgreSQL with RabbitMQ
Gavin M. Roy
April 4th, 2014
About Me
VP of Architecture

AWeber Communications
!
Blog: http://gavinroy.com
Twitter: @Crad
GitHub: https://github.com/gmr
!
RabbitMQ in Depth (MEAP)
http://manning.com/roy
RabbitMQ Primer
About RabbitMQ
• Message Oriented Middleware
• Primary identity is defined by AMQP 0-9-1
• Supports other protocols with Plugins:



AMQP 1.0, HTTP, MQTT, STOMP, XMPP, UDP,
WebStomp, and more
• Written in Erlang/OTP, is Open Source (MPL), and
is developed/maintained by Pivotal
Why RabbitMQ?
• Create loosely coupled architectures
• Decouple database write operations
• Communicate across application platforms
• Tap into pre-existing message flow for new purposes
• Scale-out clustering for growth, throughput & HA
• Federation for WAN latencies & network partitions
Native AMQP Clients
C
Clojure
Cobol
Common Lisp
Delphi
Erlang
Go
Groovy
Haskell
Java
JavaScript
.NET
OCaml
Perl
PHP
Python
Ruby
Scala
Who Uses It?
Agora Games
Chef
Google AdMob
Instagram
MeetMe
Mercado Libre
Mozilla
Nasa
New York Times
NSF
Openstack
Reddit
RabbitMQ Concepts
AMQP Message
Body
Properties
Message Properties
app-id
content-encoding
content-type
correlation-id
delivery-mode
expiration
headers
message-id
priority
reply-to
timestamp
type
user-id
Body
Properties
Publishers and Consumers
CP
Multiple Publishers
P
C
P
P
Multiple Consumers
P
C
C
C
AMQ Model
Exchange

defines routing behavior
Queue

stores messages in memory and
optionally on disk
Binding

defines relationship between
exchanges and queues
X
Queue
Binding
Routing Keys
• Provided when publishing a message
• Compared against binding keys by exchanges
• Example uses of a Routing Key:
• Connotate the type of message
• Designate the destination of a message
• Categorize the content in the message
Built-In Exchange Types
Direct

String matching on Routing Key
Fanout

No routing key, messages sent to all bound queues
Topic

Pattern matching in Routing Key
Headers

No routing key, string matching in the message headers
property
Topic Exchange Binding Keys
namespace.delimited.keys
#

Receive all messages
namespace.#

Receive all messages in the namespace
namespace.delimited.*

Receive all namespace.delimited messages
namespace.*.keys

Receive all namespace messages ending in keys
Example Exchange Plugins
Consistent Hashing

Distribute messages via
routing key hashed value
Pulse

Publish internal RabbitMQ
metrics via AMQP
Random

Distribute messages across
all bound queues randomly
Recent History

Stores last 20 messages to
any bound queue
Riak Storage 

Store received messages in
Riak"
Script Exchange

Calls out to external scripts
for routing behavior
Exchange to Exchange Bindings
X
X
X
Queue
Queue
Queue
to RabbitMQ
pg_amqp
• PostgreSQL Extension
• User-defined functions to publish via AMQP
• Developed by OmnTI
• Invoke from user-defined function
• Available on PGXN
Using pg_amqp
• Has table of AMQP broker connections
• Publishes body only AMQP messages
• Transactional publishing via amqp.publish
• Non-transactional via amqp.autonomous_publish
• Needs some love for additional features
https://github.com/gmr/On-Rabbits-and-ElephantsExample:
SELECT amqp.publish(broker_id,
'name',
'routing-key',
'message');
Publishing a Message
PgSQL Listen Exchange
• Exchange that issues LISTEN and publishes received
notifications to bound queues
• When routing messages, bindings are checked for the
routing key to match the NOTIFY channel
• Unobtrusive to PostgreSQL environment, native
constructs for publishing messages
• Requires PostgreSQL 9.0 and greater
• Body only messages*
Sending a Notification
psql (9.3.2)
Type "help" for help.
!
postgres=# timing
Timing is on.
postgres=# NOTIFY channel_name, 

‘Test notification';
NOTIFY
Time: 0.160 ms
Receiving a Notification
psql (9.3.2)
Type "help" for help.
!
postgres=# LISTEN channel_name;
!
(after NOTIFY issued)
!
Asynchronous notification "channel_name"
with payload "Test notification" received
from server process with PID 16749.
Integrating PostgreSql with RabbitMQ
Example Notification Message
to PostgreSQL
No direct integrations yet
Chapter 14
Creating a pgsql-storage
RabbitMQ plugin
Other ways?
via Consumer apps in the language of your choice
via Apache Flume with RabbitMQ Source,
PostgreSQL Sink
Questions?
rabbitmq-pgsql-listen-exchange

https://github.com/aweber/rabbitmq-pgsql-listen-exchange
pg_ampq

http://pgxn.org/dist/pg_amqp/
RabbitMQ in Depth 

44% off code pgcf (includes other books as well)

http://manning.com/roy/
Follow me on Twitter

@Crad
Ad

Recommended

Introduction To RabbitMQ
Introduction To RabbitMQ
Knoldus Inc.
 
OpenAPI and gRPC Side by-Side
OpenAPI and gRPC Side by-Side
Tim Burks
 
gRPC
gRPC
Majid Alaeinia
 
HTTP Analytics for 6M requests per second using ClickHouse, by Alexander Boc...
HTTP Analytics for 6M requests per second using ClickHouse, by Alexander Boc...
Altinity Ltd
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
confluent
 
Introduction to Kubernetes
Introduction to Kubernetes
rajdeep
 
Kafka connect 101
Kafka connect 101
Whiteklay
 
RabbitMQ.ppt
RabbitMQ.ppt
ssuserde97861
 
Storing 16 Bytes at Scale
Storing 16 Bytes at Scale
Fabian Reinartz
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
Jonas Bonér
 
The RabbitMQ Message Broker
The RabbitMQ Message Broker
Martin Toshev
 
Introduction to Apache Kafka
Introduction to Apache Kafka
AIMDek Technologies
 
Introduction to MongoDB
Introduction to MongoDB
Ravi Teja
 
Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain
confluent
 
What is gRPC introduction gRPC Explained
What is gRPC introduction gRPC Explained
jeetendra mandal
 
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
StreamNative
 
Microservices Communication Patterns with gRPC
Microservices Communication Patterns with gRPC
WSO2
 
Elasticsearch
Elasticsearch
Shagun Rathore
 
Kappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology Comparison
Kai Wähner
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
Alvaro Videla
 
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Databricks
 
gRPC Overview
gRPC Overview
Varun Talwar
 
3 Kafka patterns to deliver Streaming Machine Learning models with Andrea Spi...
3 Kafka patterns to deliver Streaming Machine Learning models with Andrea Spi...
HostedbyConfluent
 
CockroachDB
CockroachDB
andrei moga
 
Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for Logs
Marco Pracucci
 
Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012
Jay Patel
 
Intro to InfluxDB
Intro to InfluxDB
InfluxData
 
gRPC Design and Implementation
gRPC Design and Implementation
Varun Talwar
 
PostgreSQL: meet your queue
PostgreSQL: meet your queue
Theo Schlossnagle
 
Pg amqp
Pg amqp
Command Prompt., Inc
 

More Related Content

What's hot (20)

Storing 16 Bytes at Scale
Storing 16 Bytes at Scale
Fabian Reinartz
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
Jonas Bonér
 
The RabbitMQ Message Broker
The RabbitMQ Message Broker
Martin Toshev
 
Introduction to Apache Kafka
Introduction to Apache Kafka
AIMDek Technologies
 
Introduction to MongoDB
Introduction to MongoDB
Ravi Teja
 
Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain
confluent
 
What is gRPC introduction gRPC Explained
What is gRPC introduction gRPC Explained
jeetendra mandal
 
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
StreamNative
 
Microservices Communication Patterns with gRPC
Microservices Communication Patterns with gRPC
WSO2
 
Elasticsearch
Elasticsearch
Shagun Rathore
 
Kappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology Comparison
Kai Wähner
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
Alvaro Videla
 
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Databricks
 
gRPC Overview
gRPC Overview
Varun Talwar
 
3 Kafka patterns to deliver Streaming Machine Learning models with Andrea Spi...
3 Kafka patterns to deliver Streaming Machine Learning models with Andrea Spi...
HostedbyConfluent
 
CockroachDB
CockroachDB
andrei moga
 
Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for Logs
Marco Pracucci
 
Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012
Jay Patel
 
Intro to InfluxDB
Intro to InfluxDB
InfluxData
 
gRPC Design and Implementation
gRPC Design and Implementation
Varun Talwar
 
Storing 16 Bytes at Scale
Storing 16 Bytes at Scale
Fabian Reinartz
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
Jonas Bonér
 
The RabbitMQ Message Broker
The RabbitMQ Message Broker
Martin Toshev
 
Introduction to MongoDB
Introduction to MongoDB
Ravi Teja
 
Kafka streams windowing behind the curtain
Kafka streams windowing behind the curtain
confluent
 
What is gRPC introduction gRPC Explained
What is gRPC introduction gRPC Explained
jeetendra mandal
 
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
StreamNative
 
Microservices Communication Patterns with gRPC
Microservices Communication Patterns with gRPC
WSO2
 
Kappa vs Lambda Architectures and Technology Comparison
Kappa vs Lambda Architectures and Technology Comparison
Kai Wähner
 
Dissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
Alvaro Videla
 
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Building Data Product Based on Apache Spark at Airbnb with Jingwei Lu and Liy...
Databricks
 
3 Kafka patterns to deliver Streaming Machine Learning models with Andrea Spi...
3 Kafka patterns to deliver Streaming Machine Learning models with Andrea Spi...
HostedbyConfluent
 
Grafana Loki: like Prometheus, but for Logs
Grafana Loki: like Prometheus, but for Logs
Marco Pracucci
 
Cassandra at eBay - Cassandra Summit 2012
Cassandra at eBay - Cassandra Summit 2012
Jay Patel
 
Intro to InfluxDB
Intro to InfluxDB
InfluxData
 
gRPC Design and Implementation
gRPC Design and Implementation
Varun Talwar
 

Viewers also liked (20)

PostgreSQL: meet your queue
PostgreSQL: meet your queue
Theo Schlossnagle
 
Pg amqp
Pg amqp
Command Prompt., Inc
 
Rabbitmq Boot System
Rabbitmq Boot System
Alvaro Videla
 
Skytools: PgQ Queues and applications
Skytools: PgQ Queues and applications
elliando dias
 
Taming the rabbit
Taming the rabbit
Alvaro Videla
 
Implementeer een Service Orchestrated Architecture
Implementeer een Service Orchestrated Architecture
Peter Paul van de Beek
 
Morning at Lohika - Spring Boot Kotlin, a match made in Heaven
Morning at Lohika - Spring Boot Kotlin, a match made in Heaven
Nicolas Fränkel
 
Introduction to Law & Government
Introduction to Law & Government
Helensvale State High School
 
Microservices With SenecaJS
Microservices With SenecaJS
Designveloper
 
Microservices with SenecaJS (part 2)
Microservices with SenecaJS (part 2)
Designveloper
 
Tutorial su JMS (Java Message Service)
Tutorial su JMS (Java Message Service)
Federico Paparoni
 
Fi fo euc 2014
Fi fo euc 2014
Licenser
 
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
Chef Software, Inc.
 
BayLISA meetup: 8/16/12
BayLISA meetup: 8/16/12
bcantrill
 
Chef on SmartOS
Chef on SmartOS
Eric Saxby
 
SmartOS ZFS Architecture
SmartOS ZFS Architecture
Bill Pijewski
 
RabbitMq
RabbitMq
Ahmad Saif
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)
Ontico
 
OpenStack on SmartOS
OpenStack on SmartOS
Daniele Stroppa
 
JMS - Java Messaging Service
JMS - Java Messaging Service
Peter R. Egli
 
Rabbitmq Boot System
Rabbitmq Boot System
Alvaro Videla
 
Skytools: PgQ Queues and applications
Skytools: PgQ Queues and applications
elliando dias
 
Implementeer een Service Orchestrated Architecture
Implementeer een Service Orchestrated Architecture
Peter Paul van de Beek
 
Morning at Lohika - Spring Boot Kotlin, a match made in Heaven
Morning at Lohika - Spring Boot Kotlin, a match made in Heaven
Nicolas Fränkel
 
Microservices With SenecaJS
Microservices With SenecaJS
Designveloper
 
Microservices with SenecaJS (part 2)
Microservices with SenecaJS (part 2)
Designveloper
 
Tutorial su JMS (Java Message Service)
Tutorial su JMS (Java Message Service)
Federico Paparoni
 
Fi fo euc 2014
Fi fo euc 2014
Licenser
 
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
Chef Software, Inc.
 
BayLISA meetup: 8/16/12
BayLISA meetup: 8/16/12
bcantrill
 
Chef on SmartOS
Chef on SmartOS
Eric Saxby
 
SmartOS ZFS Architecture
SmartOS ZFS Architecture
Bill Pijewski
 
Где живут Ваши объявления / Тюрин Михаил (Avito)
Где живут Ваши объявления / Тюрин Михаил (Avito)
Ontico
 
JMS - Java Messaging Service
JMS - Java Messaging Service
Peter R. Egli
 
Ad

Similar to Integrating PostgreSql with RabbitMQ (20)

On Rabbits and Elephants
On Rabbits and Elephants
Gavin Roy
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
POSSCON
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
All Things Open
 
Enterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdf
Ortus Solutions, Corp
 
Rabbitmq & Postgresql
Rabbitmq & Postgresql
Lucio Grenzi
 
High powered messaging with RabbitMQ
High powered messaging with RabbitMQ
James Carr
 
Pass the message with RabbitMQ
Pass the message with RabbitMQ
Anders Ljusberg
 
Follow the White Rabbit - Message Queues with PHP
Follow the White Rabbit - Message Queues with PHP
Eric Rodriguez (Hiring in Lex)
 
Reducing load with RabbitMQ
Reducing load with RabbitMQ
Povilas Balzaravičius
 
Adding 1.21 Gigawatts to Applications with RabbitMQ (DPC 2015)
Adding 1.21 Gigawatts to Applications with RabbitMQ (DPC 2015)
James Titcumb
 
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP UK 2015)
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP UK 2015)
James Titcumb
 
CBDW2014 - Down the RabbitMQ hole with ColdFusion
CBDW2014 - Down the RabbitMQ hole with ColdFusion
Ortus Solutions, Corp
 
Multi-platform Enterprise Messaging with RabbitMQ
Multi-platform Enterprise Messaging with RabbitMQ
Ortus Solutions, Corp
 
Easy enterprise application integration with RabbitMQ and AMQP
Easy enterprise application integration with RabbitMQ and AMQP
Rabbit MQ
 
Enterprise messaging
Enterprise messaging
ColdFusionConference
 
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
James Titcumb
 
Data Migration at Scale with RabbitMQ and Spring Integration
Data Migration at Scale with RabbitMQ and Spring Integration
Alvaro Videla
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
ColdFusionConference
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
devObjective
 
Message Broker System and RabbitMQ
Message Broker System and RabbitMQ
University of Alabama at Birmingham
 
On Rabbits and Elephants
On Rabbits and Elephants
Gavin Roy
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
POSSCON
 
Messaging Standards and Systems - AMQP & RabbitMQ
Messaging Standards and Systems - AMQP & RabbitMQ
All Things Open
 
Enterprise Messaging with RabbitMQ.pdf
Enterprise Messaging with RabbitMQ.pdf
Ortus Solutions, Corp
 
Rabbitmq & Postgresql
Rabbitmq & Postgresql
Lucio Grenzi
 
High powered messaging with RabbitMQ
High powered messaging with RabbitMQ
James Carr
 
Pass the message with RabbitMQ
Pass the message with RabbitMQ
Anders Ljusberg
 
Adding 1.21 Gigawatts to Applications with RabbitMQ (DPC 2015)
Adding 1.21 Gigawatts to Applications with RabbitMQ (DPC 2015)
James Titcumb
 
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP UK 2015)
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP UK 2015)
James Titcumb
 
CBDW2014 - Down the RabbitMQ hole with ColdFusion
CBDW2014 - Down the RabbitMQ hole with ColdFusion
Ortus Solutions, Corp
 
Multi-platform Enterprise Messaging with RabbitMQ
Multi-platform Enterprise Messaging with RabbitMQ
Ortus Solutions, Corp
 
Easy enterprise application integration with RabbitMQ and AMQP
Easy enterprise application integration with RabbitMQ and AMQP
Rabbit MQ
 
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
Adding 1.21 Gigawatts to Applications with RabbitMQ (PHP Oxford June Meetup 2...
James Titcumb
 
Data Migration at Scale with RabbitMQ and Spring Integration
Data Migration at Scale with RabbitMQ and Spring Integration
Alvaro Videla
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
ColdFusionConference
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
devObjective
 
Ad

Recently uploaded (20)

@Reset-Password.pptx presentakh;kenvtion
@Reset-Password.pptx presentakh;kenvtion
MarkLariosa1
 
美国毕业证范本中华盛顿大学学位证书CWU学生卡购买
美国毕业证范本中华盛顿大学学位证书CWU学生卡购买
Taqyea
 
Lesson-3_Program-Outcomes-and-Student-Learning-Outcomes_For-Students.pdf
Lesson-3_Program-Outcomes-and-Student-Learning-Outcomes_For-Students.pdf
SarahMaeDuallo
 
英国毕业证范本利物浦约翰摩尔斯大学成绩单底纹防伪LJMU学生证办理学历认证
英国毕业证范本利物浦约翰摩尔斯大学成绩单底纹防伪LJMU学生证办理学历认证
taqyed
 
BCG-Executive-Perspectives-CEOs-Guide-to-Maximizing-Value-from-AI-EP0-3July20...
BCG-Executive-Perspectives-CEOs-Guide-to-Maximizing-Value-from-AI-EP0-3July20...
benediktnetzer1
 
Data Visualisation in data science for students
Data Visualisation in data science for students
confidenceascend
 
11_L2_Defects_and_Trouble_Shooting_2014[1].pdf
11_L2_Defects_and_Trouble_Shooting_2014[1].pdf
gun3awan88
 
Flextronics Employee Safety Data-Project-2.pptx
Flextronics Employee Safety Data-Project-2.pptx
kilarihemadri
 
Communication_Skills_Class10_Visual.pptx
Communication_Skills_Class10_Visual.pptx
namanrastogi70555
 
Indigo_Airlines_Strategy_Presentation.pptx
Indigo_Airlines_Strategy_Presentation.pptx
mukeshpurohit991
 
Artigo - Playing to Win.planejamento docx
Artigo - Playing to Win.planejamento docx
KellyXavier15
 
ppt somu_Jarvis_AI_Assistant_presen.pptx
ppt somu_Jarvis_AI_Assistant_presen.pptx
MohammedumarFarhan
 
UPS and Big Data intro to Business Analytics.pptx
UPS and Big Data intro to Business Analytics.pptx
sanjum5582
 
最新版美国芝加哥大学毕业证(UChicago毕业证书)原版定制
最新版美国芝加哥大学毕业证(UChicago毕业证书)原版定制
taqyea
 
Starbucks in the Indian market through its joint venture.
Starbucks in the Indian market through its joint venture.
sales480687
 
Crafting-Research-Recommendations Grade 12.pptx
Crafting-Research-Recommendations Grade 12.pptx
DaryllWhere
 
Boost Business Efficiency with Professional Data Entry Services
Boost Business Efficiency with Professional Data Entry Services
eloiacs eloiacs
 
The Influence off Flexible Work Policies
The Influence off Flexible Work Policies
sales480687
 
YEAP !NOT WHAT YOU THINK aakshdjdncnkenfj
YEAP !NOT WHAT YOU THINK aakshdjdncnkenfj
payalmistryb
 
624753984-Annex-A3-RPMS-Tool-for-Proficient-Teachers-SY-2024-2025.pdf
624753984-Annex-A3-RPMS-Tool-for-Proficient-Teachers-SY-2024-2025.pdf
CristineGraceAcuyan
 
@Reset-Password.pptx presentakh;kenvtion
@Reset-Password.pptx presentakh;kenvtion
MarkLariosa1
 
美国毕业证范本中华盛顿大学学位证书CWU学生卡购买
美国毕业证范本中华盛顿大学学位证书CWU学生卡购买
Taqyea
 
Lesson-3_Program-Outcomes-and-Student-Learning-Outcomes_For-Students.pdf
Lesson-3_Program-Outcomes-and-Student-Learning-Outcomes_For-Students.pdf
SarahMaeDuallo
 
英国毕业证范本利物浦约翰摩尔斯大学成绩单底纹防伪LJMU学生证办理学历认证
英国毕业证范本利物浦约翰摩尔斯大学成绩单底纹防伪LJMU学生证办理学历认证
taqyed
 
BCG-Executive-Perspectives-CEOs-Guide-to-Maximizing-Value-from-AI-EP0-3July20...
BCG-Executive-Perspectives-CEOs-Guide-to-Maximizing-Value-from-AI-EP0-3July20...
benediktnetzer1
 
Data Visualisation in data science for students
Data Visualisation in data science for students
confidenceascend
 
11_L2_Defects_and_Trouble_Shooting_2014[1].pdf
11_L2_Defects_and_Trouble_Shooting_2014[1].pdf
gun3awan88
 
Flextronics Employee Safety Data-Project-2.pptx
Flextronics Employee Safety Data-Project-2.pptx
kilarihemadri
 
Communication_Skills_Class10_Visual.pptx
Communication_Skills_Class10_Visual.pptx
namanrastogi70555
 
Indigo_Airlines_Strategy_Presentation.pptx
Indigo_Airlines_Strategy_Presentation.pptx
mukeshpurohit991
 
Artigo - Playing to Win.planejamento docx
Artigo - Playing to Win.planejamento docx
KellyXavier15
 
ppt somu_Jarvis_AI_Assistant_presen.pptx
ppt somu_Jarvis_AI_Assistant_presen.pptx
MohammedumarFarhan
 
UPS and Big Data intro to Business Analytics.pptx
UPS and Big Data intro to Business Analytics.pptx
sanjum5582
 
最新版美国芝加哥大学毕业证(UChicago毕业证书)原版定制
最新版美国芝加哥大学毕业证(UChicago毕业证书)原版定制
taqyea
 
Starbucks in the Indian market through its joint venture.
Starbucks in the Indian market through its joint venture.
sales480687
 
Crafting-Research-Recommendations Grade 12.pptx
Crafting-Research-Recommendations Grade 12.pptx
DaryllWhere
 
Boost Business Efficiency with Professional Data Entry Services
Boost Business Efficiency with Professional Data Entry Services
eloiacs eloiacs
 
The Influence off Flexible Work Policies
The Influence off Flexible Work Policies
sales480687
 
YEAP !NOT WHAT YOU THINK aakshdjdncnkenfj
YEAP !NOT WHAT YOU THINK aakshdjdncnkenfj
payalmistryb
 
624753984-Annex-A3-RPMS-Tool-for-Proficient-Teachers-SY-2024-2025.pdf
624753984-Annex-A3-RPMS-Tool-for-Proficient-Teachers-SY-2024-2025.pdf
CristineGraceAcuyan
 

Integrating PostgreSql with RabbitMQ