Prev Next

Database / Azure Cosmos DB interview questions

What is the Cosmos DB SDK and what are the key client configuration options?

The Azure Cosmos DB SDK is the official client library for interacting with Cosmos DB programmatically. Microsoft provides first-party SDKs for .NET, Java, Python, JavaScript/Node.js, and Go. Each SDK wraps the underlying REST API with connection pooling, retry logic, serialization, and Cosmos-specific patterns like bulk execution and change feed processing.

The root object in each SDK is the CosmosClient (or equivalent), which is expensive to initialize — it opens TCP connections to every data node and fetches the cluster routing table. CosmosClient should be created once per application lifetime and reused (singleton pattern). Creating it per request causes severe performance degradation and connection exhaustion.

Key configuration options on the client:

  • Connection mode: Direct (default for .NET/Java) — SDK opens TCP connections directly to backend data nodes, bypassing the gateway for data operations. Lower latency. Gateway — All requests go through the Cosmos DB HTTPS gateway. Compatible with restrictive firewalls, slightly higher latency.
  • Consistency level: Override the account-level default per client. You can only weaken (not strengthen) consistency per request.
  • MaxRetryAttemptsOnRateLimitedRequests: How many times to retry on 429 before surfacing an error to the caller. Default is 9.
  • RequestTimeout: Total timeout for a single operation attempt.
  • PreferredLocations: For multi-region accounts, the ordered list of regions to prefer for reads (nearest first for lowest latency).
  • AllowBulkExecution: Enables bulk batch optimization.
CosmosClient client = new CosmosClientBuilder(endpoint, key)
    .WithConnectionModeDirect()
    .WithApplicationPreferredRegions(new[] { "East US", "West Europe" })
    .WithBulkExecution(true)
    .WithConsistencyLevel(ConsistencyLevel.Session)
    .Build();
Why should CosmosClient be created once as a singleton rather than instantiated per request?
What is the difference between Direct and Gateway connection modes in the Cosmos DB SDK?

Invest now in Acorns!!! 🚀 Join Acorns and get your $5 bonus!

Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!

Earn passively and while sleeping

Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.

Invest now!!! Get Free equity stock (US, UK only)!

Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.

The Robinhood app makes it easy to trade stocks, crypto and more.


Webull! Receive free stock by signing up using the link: Webull signup.

More Related questions...

What is Azure Cosmos DB and what problems does it solve? What are the different APIs available in Azure Cosmos DB? What is a partition key in Azure Cosmos DB and why is choosing it correctly so important? What are Request Units (RU/s) in Azure Cosmos DB? What are the five consistency levels in Azure Cosmos DB? How does global distribution work in Azure Cosmos DB? What is the Cosmos DB Change Feed and what are its main use cases? What is provisioned throughput vs autoscale vs serverless in Cosmos DB? How does indexing work in Azure Cosmos DB? What is Time to Live (TTL) in Cosmos DB and how do you configure it? What is a stored procedure in Cosmos DB and what are its limitations? What is the difference between a point read and a query in Cosmos DB? What is the Cosmos DB NoSQL query language and how does it differ from standard SQL? What is the Cosmos DB transactional batch API? What is Cosmos DB Integrated Cache and how does it reduce RU consumption? How does optimistic concurrency work in Azure Cosmos DB? What is hierarchical partition keys in Cosmos DB and when do you use it? What is the Cosmos DB Bulk Executor and how do you use bulk operations in the SDK? What are Cosmos DB triggers and user-defined functions (UDFs)? How does Cosmos DB handle conflicts in multi-region write (multi-master) setups? What is the Cosmos DB Emulator and how is it used in development? What is Cosmos DB for MongoDB API and what version compatibility does it provide? What is the Cosmos DB analytical store and Azure Synapse Link? What are Cosmos DB materialized views and how do they differ from containers? How does Cosmos DB pricing work and what are the key cost drivers? What is the Cosmos DB Gremlin API and what is it optimized for? How does Cosmos DB backup and restore work? What is the Cosmos DB Patch API and how does it differ from Replace? What is the Cosmos DB Cassandra API and how does CQL map to Cosmos DB concepts? How do you model one-to-many relationships in Cosmos DB? What is the Cosmos DB free tier and what does it include? What is the Cosmos DB SDK and what are the key client configuration options? What is the Cosmos DB Table API and when would you migrate from Azure Table Storage to it? How does Cosmos DB handle security and access control?
Show more question and Answers...

MuleESB

Comments & Discussions