We have a requirement where we have to expose a permanent link for every DAM Asset which should not change even on Asset Update or Asset Move ? This link will be used for integration with external CMS for e.g. Wordpress and Adobe DAM is used as Digital Asset Management System.
Is there something available OOTB? One possible solution what we have thought is generating a unique id for each asset on asset upload, store it as metadata and construct the Asset Url using the same and upon each request perform a search and retrieve the Asset. But we know this would be a very heavy operation and OOTB features like Asset Link Share will have to be overridden. Also according to us Dynamic Media/Scene7 will also not help solve this issue.
Can the experts share a viable solution for the use case as it seems this is an OOTB feature available with other CMS platforms like OpenText etc.
P.S - If nothing is available planning to make it a reusable feature and contribute towards ACS Commons feature.
As far as I know there is no OOTB tool for this. However you seem like your on the right path in your thinking for a custom implementation. Here is my advice:
Create an event listener that listens for new assets being added.
When it is triggered, it creates a UUID for the asset. EG: if you create an asset at /content/dam/your-project/your-asset, the listener would add a permalinkUUID property with value e0e730c8-b124-4c4e-a18b-b56619facfd6 for example.
Then it creates a node at /content/dam/permalinks/e0e730c8-b124-4c4e-a18b-b56619facfd6 with a link property with value /content/dam/your-project/your-image.
Create a servlet that supports a GET method which accepts a UUID, looks it up under /content/dam/permalinks and forwards the request to the appropriate path.
Make sure that when assets are moved, their mapping node is also updated to include their new location.
With this setup, you can use links that would something like this: host:port/api-base/assets/e0e730c8-b124-4c4e-a18b-b56619facfd6 which would translate to host:port/content/dam/your-project/your-asset No search required so it would not take a massive toll on your performance.