With bulk API ids command, we guarantee to a client that some unknown node ids are reserved for this client.
As the repository needs to keep track of reserved ids per client, each client MUST provide a unique client id when connecting to the repository.
The client id MUST be compatible to node id string (#31).
Rationale: sufficient value space for everything, keep things simple.
A client MAY connect more than once to the same repository at the same time with the same client id.
Rationale: We will have multiple connections anyway (e.g. bulk + delta, maybe also language API etc.).
It is out of scope of LionWeb to guarantee the uniqueness of the client id.
Rationale: Lots of overhead for little benefit. The repository would need to have a registry of client ids, and an API to request a new one (and maybe to unregister).
It's sufficiently easy for a client to come up with a probably unique client id (e.g. UUID version 4).
The repository does not apply any uniqueness checks.
Rationale: How could it? If a client can connect several times, how to distinguish one client connecting twice from two clients connecting with the same id?
With bulk API ids command, we guarantee to a client that some unknown node ids are reserved for this client.
As the repository needs to keep track of reserved ids per client, each client MUST provide a unique client id when connecting to the repository.
The client id MUST be compatible to node id string (#31).
Rationale: sufficient value space for everything, keep things simple.
A client MAY connect more than once to the same repository at the same time with the same client id.
Rationale: We will have multiple connections anyway (e.g. bulk + delta, maybe also language API etc.).
It is out of scope of LionWeb to guarantee the uniqueness of the client id.
Rationale: Lots of overhead for little benefit. The repository would need to have a registry of client ids, and an API to request a new one (and maybe to unregister).
It's sufficiently easy for a client to come up with a probably unique client id (e.g. UUID version 4).
The repository does not apply any uniqueness checks.
Rationale: How could it? If a client can connect several times, how to distinguish one client connecting twice from two clients connecting with the same id?