Device can send message to the AWS IoT rules engine either via MQTT, HTTP or basic ingest. Rules engine uses SQL query to listen on topic and selects the data when topic matching the FROM clause arrives.
Code to send MQTT message:
device.publish('topic/subtopic, payload)
Code to send message via basic ingest is:
device.publish('aws/rules/topic/subtopic, payload)
URL to send message via HTTP POST is:
https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1
MQTT involves broker (pub/sub). So message sent to topic via MQTT will reach all subscribers. Similarly message sent via HTTP will also reach to all subscribers. Where as basic ingest bypasses the broker, thus saving cost and also since broker is not involved the message will not reach any subscribers. Have I understood this correctly?