Use the higher-level API scatterGatherVersionedTargetByRoutingTable in cases that use buildVersionedRequests

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 8.3.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • Fully Compatible
    • CAR Team 2025-10-13, CAR Team 2025-10-27, CAR Team 2025-11-10, CAR Team 2025-11-24
    • 🟩 Routing and Topology
    • None
    • None
    • None
    • None
    • None
    • None

      (a) The highest level ones are utilities like scatterGatherVersionedTargetByRoutingTable, which deal with (2) to (4).
      (b) A lower-level pattern, which enables finger-grained targeting decisions. It consists of inspecting a routing table to determine what shards to target and with what command (might be a different one per shard), and then using the buildVersionedRequests helper to attach the appropriate ShardVersions according to the used RC. Finally, the dispatch of the commands is left to the routing operation implementer (typically using the AsyncRequestSender transport method).
      An even lower-level pattern is similar to the previous one, except that instead of using

      Goals:

      • convert instances of (b) to the higher level (a) (or new targeting methods, of similar abstraction level).
      • investigate if we can replace constructrequestsForShards() with this or new API.

            Assignee:
            Igor Praznik
            Reporter:
            Igor Praznik
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: