My website tracks events over time. Logically, the name of the event appears in the url for each event. eg:
www.example.com/event-name/some-facet/uid
These events at times can change names, in which case the url should be updated with the new name. Ideally I would like to avoid creating a new page for the new name and I would also like to avoid keeping the old page (that is keep an old version frozen in time). The simplest approach would be to rename the page and then create a 301 redirect from the old to the new. But, this has potential, over time, of creating a Spaghetti Bolognese of redirect chains, as the names could change multiple times.
My content is generated dynamically based on the url, so I can have two urls pointing to the exact same content. Obviously, this can create a duplicate content issues. To avoid the dupe-issues was thinking of using rel=canonical tag setting the canonical to the latest name. Like that whether a user uses the old or new url they arrive at the same place.
Am I putting too much faith in the rel=cannonical link tag, and should I bite the bullet and devise a system to manage redirects?
I could also 404 or 410 the old url and simpy forget about it. But then I would loose any links pointing to it. So that approach is basically ruled out.