Skip to content

503: concurrent consumer connections#518

Open
PaulMartinsen wants to merge 1 commit intomasterfrom
503-concurrent-consumer-connections
Open

503: concurrent consumer connections#518
PaulMartinsen wants to merge 1 commit intomasterfrom
503-concurrent-consumer-connections

Conversation

@PaulMartinsen
Copy link
Copy Markdown
Collaborator

@PaulMartinsen PaulMartinsen commented Mar 21, 2026

📑 Description

Not all providers can support many concurrent consumer connections while some consumers and/or providers may benefit from multiple concurrent connections to mitigate risks. This PR outlines an approach, leveraging the HTTP 429 status code, to support interoperability for both scenarios.

☑ Mandatory Tasks

The following aspects have been respected by the pull request assignee and at least one reviewer:

  • Changelog update (necessity checked and entry added or not added respectively)
  • Pull Request Assignee
  • Reviewer

@PaulMartinsen PaulMartinsen self-assigned this Mar 21, 2026
@PaulMartinsen PaulMartinsen linked an issue Mar 21, 2026 that may be closed by this pull request
1 task

| [[term_transport_address, Transport Address]] Transport Address
| A physical endpoint address that can be used to communicate with a <<vol1_spec_sdpi_p_actor_somds_provider>>.
| A physical or virtual endpoint address that can be used to communicate with a <<vol1_spec_sdpi_p_actor_somds_provider>> or <<vol1_spec_sdpi_p_actor_somds_consumer>> .
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is actually meant to be a physical transport address only. Any reason you changed that?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking of VPNs but isn't the physical address the MAC address? Wouldn't the transport address be the combination of IPv4 or IPv6 address and port number? I guess that ties things to IP transport, while some may be interested in other transports like Bluetooth and carrier pigeon. I may be over thinking this. Chatgpt came up with
"A transport address is a transport-layer identifier consisting of a node locator and an endpoint selector, which together uniquely identify a communication endpoint within a specific transport network."

Anyway, the important part for me was consumer's have transport addresses too. I'll just get rid of the "virtual" part.

SDC allows a <<vol1_spec_sdpi_p_actor_somds_consumer>> to open multiple, concurrent TCP
connections to a <<vol1_spec_sdpi_p_actor_somds_provider>>'s hosted services.
While this offers flexibility for implementations, <<vol1_spec_sdpi_p_actor_somds_provider>>
may constrain the number of concurrent TCP connections to ensure availability of its
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use increase/improve over ensure.

[NORMATIVE]
====
The <<term_manufacturer>> of a <<vol1_spec_sdpi_p_actor_somds_provider>> may limit the number of
concurrent TCP connections from an individual <<vol1_spec_sdpi_p_actor_somds_consumer>> to its hosted services to ensure availability and
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be removed: "to ensure availability and responsiveness of its <<acronym_sfc,system function contribution>>." Either we move that to the requirement notes or we can just delete it. The same statement is given in the introduction of this clause.

** <<term_transport_address>> and/or,
** `[source endpoint]` message property (see <<ref_oasis_ws_addressing_2006>>) and/or,
** client credentials used for TLS authentication.
* Securing the connection may be the most expensive part of an operation, so a <<vol1_spec_sdpi_p_actor_somds_provider>> may
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does "operation" refer to here?


===== Related Requirements

* RefRequirement:r1001[]: Single connection to consumer for sending reports
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does this macro exist? Shouldn't xref? or <<...>>` do the trick?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly to provide the json interoperability export cross-referencing independent of the asciidoc source.

to reduce its connection count and/or frequency.
====

// todo: specify how client credentials can identify consumer based on the work from the
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This todo should be added as an issue as otherwise it will get lost

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Concurrent consumer connections

2 participants