private void HandleSqsMessage(Message message)
        {
            // Deserialize to envelope
            MessageEnvelope envelope = (MessageEnvelope)config.MessageSerializer.Deserialize(typeof(MessageEnvelope), messageAdapter.GetMessageBody(message));

            Type   bodyType = Type.GetType(envelope.BodyType);
            object body     = config.MessageSerializer.Deserialize(bodyType, envelope.Body);

            // Get handler
            var handler = config.HandlerResolver.ResolveHandlerForMessage(bodyType);

            // Invoke
            try
            {
                handler(body);

                // Handle complete, remove from queue
                sqs.DeleteMessage(queueUrl, message.ReceiptHandle);
            }
            catch (Exception ex)
            {
                // TODO: NLog
                Console.WriteLine($"Error {ex.Message} handling message {message.MessageId}");
            }
        }