def compose_key(instance):
    """Given an instance, returns a key

    :arg instance: The model instance to generate a key for

    :returns: A string representing that specific instance

    .. Note::

       This uses the id attribute of the model instance.

       That's good enough for my needs, but we might need to think about
       changing this if we make this a library.

    """
    cls = instance.__class__
    return ':'.join([cls.__module__, cls.__name__, str(instance.id)])