class_docstr: The _ImmutableDistributedMap enables to create a distributed key value pair in the cloud.
  
  The first process to perform the set operation defines its value.
code: def set_and_get(self, key: str, value: Any) -> Any:
      payload = {"key": key, "value": pickle.dumps(value, 0).decode()}
  
      # Try the public address first
      try:
          resp = self.public_client.post("/broadcast", json=payload)
      except (
          requests.exceptions.ConnectionError,
          urllib3.exceptions.MaxRetryError,
      ):
          # fallback to the private one
          resp = self.private_client.post("/broadcast", json=payload)
  
      if resp.status_code != 200:
          raise RuntimeError(
              f"Failed to broadcast the following {key=} {value=}."
          )
      return pickle.loads(bytes(resp.json()["value"], "utf-8"))
  
imports: import json
  import os
  import pickle
  from logging import Logger
  from typing import Any, Callable, Dict, Optional
  from urllib.parse import urljoin
  import requests
  import urllib3
  from requests.adapters import HTTPAdapter
  from urllib3.util.retry import Retry
label_desc: Use image node_id 2 for calling the _ImmutableDistributedMap obj's underlying member method code with example usage: obj.set_and_get(key, value) and returns: pickle