MongoDB Drivers And High Availability: Deep Dive

MongoDB Drivers
&	

High Availability
A. Jesse Jiryu Davis
Staff Engineer, MongoDB
@jessejiryudavis
Client

Side
• It’s a MongoDB driver specification.
• (It’s not MMS.)
• Written by me.

Advisors: David Golden, Craig Wilson, Jeff Yemin.

Overseen by Bernie Hackett.
Server Discovery
&	

Monitoring Spec
Good News
&	

Bad News
Agenda
•Startup
•Steady State
•Crisis
•Resolution
•Practical Applications
•Further Study
Setup
•3-node replica set
•PyMongo 3
client = MongoClient(!
'mongodb://host1,host2/?replicaSet=my-rs')!
primary
host1
secondary
host2
secondary
host3
Python Program
monitor

thread
monitor

thread
MongoClient


{secondary: true,

hosts: ["host1",
"host2",
"host3"]}

"mongodb://host1,host2/?replicaSet=my-rs"
ismaster

(from secondary)
{"setName": "rs-name",!
"ismaster": false,!
"secondary": true,!
"hosts": ["host1", "host2", "host3"]}!
{"setName": "rs-name",!
"ismaster": true,!
"secondary": false,!
"hosts": ["host1", "host2", "host3"]}!
ismaster

(from primary)
Updating Topology
Description
Current description
+
ismaster response
→ new description
Updating Topology
Description
primary
host1
secondary
host2
secondary
host3
Python Program
monitor

thread
monitor

thread
monitor

thread
MongoClient


{secondary: true,

hosts: ["host1",
"host2",
"host3"]}

"new info!"
Your

Code?
✓
client.db.collection.insert({'my': 'document'})!
client = MongoClient(!
'mongodb://host1,host2/?replicaSet=my-rs')!
primary
host1
secondary
host2
secondary
host3
Python Program
monitor

thread
monitor

thread
monitor

thread
MongoClient


{ismaster: true,

hosts: ["host1",
"host2",
"host3"]}

{secondary: true,

hosts: ["host1",
"host2",
"host3"]}

Your

Code
insert
ok
✓
✓
"new info!"
insert
ok
✓
Steady State
primary
host1
secondary
host2
secondary
host3
monitor

thread
monitor

thread
monitor

thread
MongoClient
Your

Code
insert
ok
insert
ok
✓
✓
✓
Steady State
Crisis
primary
host1
secondary
host2
secondary
host3
monitor

thread
monitor

thread
monitor

thread
MongoClient
Your

Code
insert
ok
insert
ok
✓
✓
✓
primary
host1
secondary
host2
secondary
host3
monitor

thread
monitor

thread
monitor

thread
Your

Code
insert
ConnectionFailure!
insert
✓
✓
✓
MongoClient
?
Crisis
primary
host1
secondary
host2
secondary
host3
monitor

thread
monitor

thread
monitor

thread
Your

Code
insert
✓ ✓
MongoClient
"Wake up!"
Crisis
?
Resolution
primary
host1
secondary
host2
secondary
host3
monitor

thread
monitor

thread
monitor

thread
Your

Code
✓
insert
"Wake up!"
(every half second)
MongoClient
primary
host2
✓
insert
ok
ok
Resolution
?
So What?
client = MongoClient(!
'mongodb://host1,host2/?replicaSet=my-rs')!
!
try:!
client.admin.command('ismaster')!
except pymongo.errors.ConnectionFailure as e:!
print("Can't connect: %s" % e)!
Non-Blocking

Client Construction
#1
Error Handling
#2
def find_my_document():!
try:!
return collection.find_one(query)!
except ConnectionFailure:!
logging.exception("finding document")!
return collection.find_one(query)!
Error Handling
#2
def insert_doc():!
doc = {'_id': ObjectId(), 'a': 1}!
try:!
collection.insert(doc)!
except ConnectionFailure:!
logging.exception("inserting document")!
# Try again.!
collection.insert(doc)!
except DuplicateKeyError:!
# Previous try actually succeeded.!
pass!
#2
Error Handling
collection.update(!
{'_id': 1},!
{'$inc': {'counter': 1}})!
#2
Only idempotent
operations can

be retried
Error Handling
Knobs
#3
•connectTimeoutMS
•serverSelectionTimeoutMS
ConnectionFailure!
monitor

thread
monitor

thread
monitor

thread
primary
host1
secondary
host2
secondary
host3
Your

Code
insert insertMongoClient
"Wake up!"
wait for

connectTimeoutMS
wait for

serverSelectionTimeoutMS
(30 seconds)
bit.ly/server-discovery
Further Study:


Server Discovery
&	

Monitoring Spec
1 of 32

Recommended

Gerenciando múltiplas versões do PostgreSQL com pgvm by
Gerenciando múltiplas versões do PostgreSQL com pgvmGerenciando múltiplas versões do PostgreSQL com pgvm
Gerenciando múltiplas versões do PostgreSQL com pgvmDickson S. Guedes
624 views7 slides
Intro to grunt by
Intro to gruntIntro to grunt
Intro to grunt春行 常
379 views41 slides
Mobile Open Day: Things I wish I'd known about Core Data before getting married by
Mobile Open Day: Things I wish I'd known about Core Data before getting marriedMobile Open Day: Things I wish I'd known about Core Data before getting married
Mobile Open Day: Things I wish I'd known about Core Data before getting marriedepamspb
98 views33 slides
Token Based Authentication Systems by
Token Based Authentication SystemsToken Based Authentication Systems
Token Based Authentication SystemsHüseyin BABAL
1.3K views15 slides
Social Analytics with MongoDB by
Social Analytics with MongoDBSocial Analytics with MongoDB
Social Analytics with MongoDBPatrick Stokes
5.5K views28 slides
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud by
高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud高性能かつスケールアウト可能なHPCクラウド AIST Super Green Cloud
高性能かつスケールアウト可能なHPCクラウド AIST Super Green CloudRyousei Takano
2.7K views25 slides

More Related Content

Viewers also liked

MongoDB Drivers And High Availability: Deep Dive by
MongoDB Drivers And High Availability: Deep DiveMongoDB Drivers And High Availability: Deep Dive
MongoDB Drivers And High Availability: Deep DiveMongoDB
5.1K views32 slides
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDB by
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDBWebinar: Enabling Microservices with Containers, Orchestration, and MongoDB
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDBMongoDB
5.6K views25 slides
Back to Basics 2017: Introduction to Sharding by
Back to Basics 2017: Introduction to ShardingBack to Basics 2017: Introduction to Sharding
Back to Basics 2017: Introduction to ShardingMongoDB
1.9K views27 slides
Back to Basics Webinar 1: Introduction to NoSQL by
Back to Basics Webinar 1: Introduction to NoSQLBack to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQLMongoDB
7.7K views28 slides
Day 5 by
Day 5Day 5
Day 5Travis Klein
231 views73 slides
Linguistic landscape by
Linguistic landscapeLinguistic landscape
Linguistic landscapeayurkosky
397 views9 slides

Viewers also liked(20)

MongoDB Drivers And High Availability: Deep Dive by MongoDB
MongoDB Drivers And High Availability: Deep DiveMongoDB Drivers And High Availability: Deep Dive
MongoDB Drivers And High Availability: Deep Dive
MongoDB5.1K views
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDB by MongoDB
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDBWebinar: Enabling Microservices with Containers, Orchestration, and MongoDB
Webinar: Enabling Microservices with Containers, Orchestration, and MongoDB
MongoDB5.6K views
Back to Basics 2017: Introduction to Sharding by MongoDB
Back to Basics 2017: Introduction to ShardingBack to Basics 2017: Introduction to Sharding
Back to Basics 2017: Introduction to Sharding
MongoDB1.9K views
Back to Basics Webinar 1: Introduction to NoSQL by MongoDB
Back to Basics Webinar 1: Introduction to NoSQLBack to Basics Webinar 1: Introduction to NoSQL
Back to Basics Webinar 1: Introduction to NoSQL
MongoDB7.7K views
Linguistic landscape by ayurkosky
Linguistic landscapeLinguistic landscape
Linguistic landscape
ayurkosky397 views
Golfbrands by jgalla14
GolfbrandsGolfbrands
Golfbrands
jgalla14225 views
産後が起点となる社会問題とマドレボニータの紹介20150613 by Maco Yoshioka
産後が起点となる社会問題とマドレボニータの紹介20150613産後が起点となる社会問題とマドレボニータの紹介20150613
産後が起点となる社会問題とマドレボニータの紹介20150613
Maco Yoshioka555 views
EMC Greenplum Database version 4.2 by EMC
EMC Greenplum Database version 4.2 EMC Greenplum Database version 4.2
EMC Greenplum Database version 4.2
EMC1.2K views
White Paper: EMC Infrastructure for Microsoft Private Cloud by EMC
White Paper: EMC Infrastructure for Microsoft Private Cloud White Paper: EMC Infrastructure for Microsoft Private Cloud
White Paper: EMC Infrastructure for Microsoft Private Cloud
EMC1.1K views
White Paper: Integrated Computing Platforms - Infrastructure Builds for Tomor... by EMC
White Paper: Integrated Computing Platforms - Infrastructure Builds for Tomor...White Paper: Integrated Computing Platforms - Infrastructure Builds for Tomor...
White Paper: Integrated Computing Platforms - Infrastructure Builds for Tomor...
EMC694 views
Sistema Europa: Istituzioni e politiche dell'UE by Cristina Belloni
Sistema Europa: Istituzioni e politiche dell'UESistema Europa: Istituzioni e politiche dell'UE
Sistema Europa: Istituzioni e politiche dell'UE
Cristina Belloni769 views
A Semantic Web Approach for defining Building Views by Ana Roxin
A Semantic Web Approach for defining Building ViewsA Semantic Web Approach for defining Building Views
A Semantic Web Approach for defining Building Views
Ana Roxin233 views

Similar to MongoDB Drivers And High Availability: Deep Dive

EuroPython 2016 : A Deep Dive into the Pymongo Driver by
EuroPython 2016 : A Deep Dive into the Pymongo DriverEuroPython 2016 : A Deep Dive into the Pymongo Driver
EuroPython 2016 : A Deep Dive into the Pymongo DriverJoe Drumgoole
404 views45 slides
MongoDB: Optimising for Performance, Scale & Analytics by
MongoDB: Optimising for Performance, Scale & AnalyticsMongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & AnalyticsServer Density
555 views96 slides
NoSQL Infrastructure by
NoSQL InfrastructureNoSQL Infrastructure
NoSQL InfrastructureServer Density
826 views69 slides
Webinar Back to Basics 3 - Introduzione ai Replica Set by
Webinar Back to Basics 3 - Introduzione ai Replica SetWebinar Back to Basics 3 - Introduzione ai Replica Set
Webinar Back to Basics 3 - Introduzione ai Replica SetMongoDB
763 views61 slides
MongoDB by
MongoDBMongoDB
MongoDBSteven Francia
3.2K views115 slides
Mongodb replication by
Mongodb replicationMongodb replication
Mongodb replicationPoguttuezhiniVP
53 views31 slides

Similar to MongoDB Drivers And High Availability: Deep Dive(20)

EuroPython 2016 : A Deep Dive into the Pymongo Driver by Joe Drumgoole
EuroPython 2016 : A Deep Dive into the Pymongo DriverEuroPython 2016 : A Deep Dive into the Pymongo Driver
EuroPython 2016 : A Deep Dive into the Pymongo Driver
Joe Drumgoole404 views
MongoDB: Optimising for Performance, Scale & Analytics by Server Density
MongoDB: Optimising for Performance, Scale & AnalyticsMongoDB: Optimising for Performance, Scale & Analytics
MongoDB: Optimising for Performance, Scale & Analytics
Server Density555 views
Webinar Back to Basics 3 - Introduzione ai Replica Set by MongoDB
Webinar Back to Basics 3 - Introduzione ai Replica SetWebinar Back to Basics 3 - Introduzione ai Replica Set
Webinar Back to Basics 3 - Introduzione ai Replica Set
MongoDB763 views
Back to Basics Webinar 3: Introduction to Replica Sets by MongoDB
Back to Basics Webinar 3: Introduction to Replica SetsBack to Basics Webinar 3: Introduction to Replica Sets
Back to Basics Webinar 3: Introduction to Replica Sets
MongoDB2.2K views
2013 london advanced-replication by Marc Schwering
2013 london advanced-replication2013 london advanced-replication
2013 london advanced-replication
Marc Schwering248 views
Exploring the replication in MongoDB by Igor Donchovski
Exploring the replication in MongoDBExploring the replication in MongoDB
Exploring the replication in MongoDB
Igor Donchovski424 views
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv... by MongoDB
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
Ensuring High Availability for Real-time Analytics featuring Boxed Ice / Serv...
MongoDB602 views
Replication and Replica Sets by MongoDB
Replication and Replica SetsReplication and Replica Sets
Replication and Replica Sets
MongoDB301 views
Ops Jumpstart: MongoDB Administration 101 by MongoDB
Ops Jumpstart: MongoDB Administration 101Ops Jumpstart: MongoDB Administration 101
Ops Jumpstart: MongoDB Administration 101
MongoDB1.4K views
MongoDB World 2016: From the Polls to the Trolls: Seeing What the World Think... by MongoDB
MongoDB World 2016: From the Polls to the Trolls: Seeing What the World Think...MongoDB World 2016: From the Polls to the Trolls: Seeing What the World Think...
MongoDB World 2016: From the Polls to the Trolls: Seeing What the World Think...
MongoDB532 views
Webinar slides: How to Secure MongoDB with ClusterControl by Severalnines
Webinar slides: How to Secure MongoDB with ClusterControlWebinar slides: How to Secure MongoDB with ClusterControl
Webinar slides: How to Secure MongoDB with ClusterControl
Severalnines459 views
Tales from the Field by MongoDB
Tales from the FieldTales from the Field
Tales from the Field
MongoDB1.4K views
MongoDB for Time Series Data Part 3: Sharding by MongoDB
MongoDB for Time Series Data Part 3: ShardingMongoDB for Time Series Data Part 3: Sharding
MongoDB for Time Series Data Part 3: Sharding
MongoDB19.2K views
Maintenance for MongoDB Replica Sets by Igor Donchovski
Maintenance for MongoDB Replica SetsMaintenance for MongoDB Replica Sets
Maintenance for MongoDB Replica Sets
Igor Donchovski439 views
MongoDB Pros and Cons by johnrjenson
MongoDB Pros and ConsMongoDB Pros and Cons
MongoDB Pros and Cons
johnrjenson16.8K views
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB by Cody Ray
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDBBuilding a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Building a Scalable Distributed Stats Infrastructure with Storm and KairosDB
Cody Ray4.8K views

More from emptysquare

Cat-Herd's Crook by
Cat-Herd's CrookCat-Herd's Crook
Cat-Herd's Crookemptysquare
835 views39 slides
What Is Async, How Does It Work, And When Should I Use It? by
What Is Async, How Does It Work, And When Should I Use It?What Is Async, How Does It Work, And When Should I Use It?
What Is Async, How Does It Work, And When Should I Use It?emptysquare
1.9K views30 slides
Python Performance Profiling: The Guts And The Glory by
Python Performance Profiling: The Guts And The GloryPython Performance Profiling: The Guts And The Glory
Python Performance Profiling: The Guts And The Gloryemptysquare
3.4K views26 slides
Python Performance: Single-threaded, multi-threaded, and Gevent by
Python Performance: Single-threaded, multi-threaded, and GeventPython Performance: Single-threaded, multi-threaded, and Gevent
Python Performance: Single-threaded, multi-threaded, and Geventemptysquare
9.4K views26 slides
Python Coroutines, Present and Future by
Python Coroutines, Present and FuturePython Coroutines, Present and Future
Python Coroutines, Present and Futureemptysquare
21.8K views39 slides
PyCon lightning talk on my Toro module for Tornado by
PyCon lightning talk on my Toro module for TornadoPyCon lightning talk on my Toro module for Tornado
PyCon lightning talk on my Toro module for Tornadoemptysquare
4.5K views8 slides

More from emptysquare(7)

Cat-Herd's Crook by emptysquare
Cat-Herd's CrookCat-Herd's Crook
Cat-Herd's Crook
emptysquare835 views
What Is Async, How Does It Work, And When Should I Use It? by emptysquare
What Is Async, How Does It Work, And When Should I Use It?What Is Async, How Does It Work, And When Should I Use It?
What Is Async, How Does It Work, And When Should I Use It?
emptysquare1.9K views
Python Performance Profiling: The Guts And The Glory by emptysquare
Python Performance Profiling: The Guts And The GloryPython Performance Profiling: The Guts And The Glory
Python Performance Profiling: The Guts And The Glory
emptysquare3.4K views
Python Performance: Single-threaded, multi-threaded, and Gevent by emptysquare
Python Performance: Single-threaded, multi-threaded, and GeventPython Performance: Single-threaded, multi-threaded, and Gevent
Python Performance: Single-threaded, multi-threaded, and Gevent
emptysquare9.4K views
Python Coroutines, Present and Future by emptysquare
Python Coroutines, Present and FuturePython Coroutines, Present and Future
Python Coroutines, Present and Future
emptysquare21.8K views
PyCon lightning talk on my Toro module for Tornado by emptysquare
PyCon lightning talk on my Toro module for TornadoPyCon lightning talk on my Toro module for Tornado
PyCon lightning talk on my Toro module for Tornado
emptysquare4.5K views
Python, async web frameworks, and MongoDB by emptysquare
Python, async web frameworks, and MongoDBPython, async web frameworks, and MongoDB
Python, async web frameworks, and MongoDB
emptysquare7.3K views

Recently uploaded

Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...NUS-ISS
32 views54 slides
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...Fwdays
33 views39 slides
[2023] Putting the R! in R&D.pdf by
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdfEleanor McHugh
38 views127 slides
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur by
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
"Thriving Culture in a Product Company — Practical Story", Volodymyr TsukurFwdays
40 views31 slides
The Research Portal of Catalonia: Growing more (information) & more (services) by
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)CSUC - Consorci de Serveis Universitaris de Catalunya
66 views25 slides
Tunable Laser (1).pptx by
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptxHajira Mahmood
21 views37 slides

Recently uploaded(20)

Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS32 views
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by Fwdays
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
Fwdays33 views
[2023] Putting the R! in R&D.pdf by Eleanor McHugh
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh38 views
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur by Fwdays
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
Fwdays40 views
Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 views
"How we switched to Kanban and how it integrates with product planning", Vady... by Fwdays
"How we switched to Kanban and how it integrates with product planning", Vady..."How we switched to Kanban and how it integrates with product planning", Vady...
"How we switched to Kanban and how it integrates with product planning", Vady...
Fwdays61 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst449 views
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen... by NUS-ISS
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS23 views
MemVerge: Past Present and Future of CXL by CXL Forum
MemVerge: Past Present and Future of CXLMemVerge: Past Present and Future of CXL
MemVerge: Past Present and Future of CXL
CXL Forum110 views
TE Connectivity: Card Edge Interconnects by CXL Forum
TE Connectivity: Card Edge InterconnectsTE Connectivity: Card Edge Interconnects
TE Connectivity: Card Edge Interconnects
CXL Forum96 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier29 views
JCon Live 2023 - Lice coding some integration problems by Bernd Ruecker
JCon Live 2023 - Lice coding some integration problemsJCon Live 2023 - Lice coding some integration problems
JCon Live 2023 - Lice coding some integration problems
Bernd Ruecker67 views
CXL at OCP by CXL Forum
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum208 views
MemVerge: Memory Viewer Software by CXL Forum
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer Software
CXL Forum118 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi113 views

MongoDB Drivers And High Availability: Deep Dive