public void Publish <T>(T message, int?constraintId) where T : class
        {
            var subscribers = ListSubscribers(message)
                              .Where(s => !constraintId.HasValue || subscriptionStore.HasConstraint(s, constraintId.Value));

            Publish(subscribers, message);
        }