As part of Lionweb, we have not said anything about how node IDs are structured, beyond the Base64 decision. However, specific repositories might make assumptions about this ID. For example, modelix assumes longs. This means:
- if we receive data from the server that has nodes in it, their IDs are assumed by the client to be valid for the repo
- if the client creates new nodes, they have to use IDs that are valid for the repo. Best way of doing is is for the client to request a pool of new IDs from the server for each editing session (we need an API for that)
One consequence of this approach is that nodes and their IDs might not be portable across repos. However, when we import a bunch of nodes into a different repo, we will likely have to touch the IDs anyway because they might overlap with existing ones. So the additional burden of changing the format (arbitrary string to, say, long) is not a huge additional burden.
As part of Lionweb, we have not said anything about how node IDs are structured, beyond the Base64 decision. However, specific repositories might make assumptions about this ID. For example, modelix assumes longs. This means:
One consequence of this approach is that nodes and their IDs might not be portable across repos. However, when we import a bunch of nodes into a different repo, we will likely have to touch the IDs anyway because they might overlap with existing ones. So the additional burden of changing the format (arbitrary string to, say, long) is not a huge additional burden.