<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def broadcast_identifier(self):
 """ A unique string to identify a service instance for `BROADCAST` type handlers. The `broadcast_identifier` is appended to the queue name when the `BROADCAST` handler type is used. It must uniquely identify service instances that receive broadcasts. The default `broadcast_identifier` is a uuid that is set when the service starts. It will change when the service restarts, meaning that any unconsumed messages that were broadcast to the 'old' service instance will not be received by the 'new' one. :: @property def broadcast_identifier(self):
 # use a uuid as the identifier. # the identifier will change when the service restarts and # any unconsumed messages will be lost return uuid.uuid4().hex The default behaviour is therefore incompatible with reliable delivery. An alternative `broadcast_identifier` that would survive service restarts is :: @property def broadcast_identifier(self):
 # use the machine hostname as the identifier. # this assumes that only one instance of a service runs on # any given machine return socket.gethostname() If neither of these approaches are appropriate, you could read the value out of a configuration file :: @property def broadcast_identifier(self):
 return self.config['SERVICE_IDENTIFIER'] # or similar Broadcast queues are exclusive to ensure that `broadcast_identifier` values are unique. Because this method is a descriptor, it will be called during container creation, regardless of the configured `handler_type`. See :class:`nameko.extensions.Extension` for more details. """

        if self.handler_type is not BROADCAST:
            return None

        if self.reliable_delivery:
            raise EventHandlerConfigurationError(
                "You are using the default broadcast identifier "
                "which is not compatible with reliable delivery. See "
                ":meth:`nameko.events.EventHandler.broadcast_identifier` "
                "for details.")

        return uuid.uuid4().hex