// TODO: THIS USE OF REFLECTION IS FRAGILE AND MUST BE RECONSIDERED
        private static IModel?ExtractModelFromInternalConsumer(IConsumer consumer, ILogger?logger)
        {
            IModel?model        = null;
            var    consumerType = consumer.GetType();

            var internalConsumersField =
                consumerType.GetField("internalConsumers", BindingFlags.Instance | BindingFlags.NonPublic);

            if (internalConsumersField != null)
            {
                var internalConsumers = (ConcurrentSet <IInternalConsumer>)internalConsumersField.GetValue(consumer);
                // ReSharper disable once AssignNullToNotNullAttribute
                // ReSharper disable once ConstantConditionalAccessQualifier
                model = ((InternalConsumer)internalConsumers.FirstOrDefault())?.Model;
            }

            var internalConsumerField =
                consumerType.GetField("internalConsumer", BindingFlags.Instance | BindingFlags.NonPublic);

            if (internalConsumerField != null)
            {
                var internalConsumer = (IInternalConsumer)internalConsumerField.GetValue(consumer);
                // ReSharper disable once ConstantConditionalAccessQualifier
                model = ((InternalConsumer)internalConsumer)?.Model;
            }

            if (model == null)
            {
                logger?.LogCritical(
                    $"Could not extract a non null {nameof(IModel)} " +
                    $"from the provided {nameof(IConsumer)}.");
            }

            return(model);
        }