I had originally intended to use the node id but I was unsure if this would be the best way, and now that you mention it, it seems more logical as I hadn't considered the lack of persistence in the url_alias.
On that note just for my own clarification, is the node id persistent, that is will it ever change and if so what action would likely do so?
The node-id is persistent, BUT an article can exist on several different places in the node-tree and therefore have several different node-ids.
A scenario could be that you
1)Publish an article with node-id=100.
2)Make a co-location of the same article, and now have node_id=100 AND node-id=200.
3)Then you make node-id=200 the primary node, and delete the node-id=100. Now you only have node-id=200. If you use node-id in the url it will seems like the article has changed node-id.