ScyllaDB University Live | Free Virtual Training Event
Learn more
ScyllaDB Documentation Logo Documentation
  • Server
  • Cloud
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Download
ScyllaDB Docs ScyllaDB C# driver Features Address resolution

Address resolution¶

The driver auto-detects new nodes when they are added to the cluster by means of server-side push notifications and checking the system tables.

For each node, the address the driver receives the address set as rpc_address in the node’s cassandra.yaml file (or broadcast_rpc_address when defined). In most cases, this is the correct value, however, sometimes the addresses received in this manner are either not reachable directly by the driver or are not the preferred address to use. A common such scenario is a multi-datacenter deployment with a client connecting using the private IP address to the local datacenter (to reduce network costs) and the public IP address for the remote datacenter nodes.

The AddressTranslator interface¶

The IAddressTranslator interface allows you to deal with such cases, by transforming the address sent by a node to another address to be used by the driver for connection.

namespace Cassandra
{
    public interface IAddressTranslator
    {
        IPEndPoint Translate(IPEndPoint address);
    }
}

You then configure the driver to use your IAddressTranslator implementation in the client options.

var cluster = Cluster.Builder()
    .AddContactPoint("1.2.3.4")
    .WithAddressTranslator(new MyAddressTranslator())
    .Build();

Note: The contact points provided while building the Cluster are not translated, only addresses retrieved from or sent by server nodes are.

Was this page helpful?

PREVIOUS
Features
NEXT
Authentication and Authorization
  • Create an issue
  • Edit this page

On this page

  • Address resolution
    • The AddressTranslator interface
ScyllaDB C# driver
  • master
    • master
  • Features
    • Address resolution
    • Authentication and Authorization
    • Automatic failover
    • Column Encryption
    • Driver components
      • ADO.NET
      • Core component
        • Statements
          • Batch statements
          • Per-query keyspace
          • Prepared statements
          • Simple statements
      • Linq component
        • Batch statements with LINQ
      • Mapper component
        • Batch statements with the Mapper
    • Connection heartbeat
    • Connection pooling
    • CQL data types to C# types
      • Date and time representation
      • Nulls and unset
    • Execution Profiles
    • Graph support
    • Cluster and schema metadata
    • Metrics
      • App.Metrics Provider
      • List of metrics
    • Native protocol
    • OpenTelemetry
    • Result paging
    • Parameterized queries
    • Query timestamps
    • Query warnings
    • Request Tracker
    • Routing queries
    • Speculative query execution
    • TLS/SSL
    • Tuning policies
    • User-defined functions and aggregates
    • User-defined types
    • Vector support
  • FAQ
  • Upgrade Guide
  • Examples
  • API Reference
Docs Tutorials University Contact Us About Us
© 2025 ScyllaDB | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 01 Aug 2025.
Powered by Sphinx 7.4.7 & ScyllaDB Theme 1.8.7
Ask AI