allow for ID to be set via attributes

external data sources sometimes carry their own IDs. this let's us keep
that ID and simply ensure it's unique within redis