Metadata 101

The word “Meta” derives from Greek origins, meaning “among, with, after, change.” In the world of tech, this prefix means “an underlying definition or description.” So what exactly is metadata? The simplest way of putting it is data that provides information about other data. You’re probably wondering, why do we even need data about data? If you think about it, without context, data has little purpose or value. Let’s dive deep into the depths of metadata and its hidden powers.


The birth of Metadata

Metadata was the solution to a major problem in the messaging universe. The problem with messaging was it did not rely on a persistent connection between service and consumer and so it was challenging for a service to gain access to the state data associated with an overall runtime activity. For instance, when you email someone, you can set the topic of the conversation as the title of the email. Messaging lacks this capability and the only possible way to do this would be to explicitly mention it in the content of every message that is exchanged between the sender and the receiver which can be quite cumbersome. Metadata made it possible for messages to be supplemented with additional data that can be interpreted and processed separately. It allowed messaging agents to manage and maintain relevant information from the messaging conversations with consumers.


How MessageMedia uses it

MessageMedia supports message headers or properties which allows metadata to be specified when sending a message. Metadata can be thought of as a tag which is added to an outbound message that IS NOT part of the content of the message itself. You can add metadata to your message as a property. Here’s an example of what this would look like:

   "messages": [
             "content": "Thank you for your purchase. Your transaction id is..",
             "destination_number": "+61491570156",
             "metadata": {
                   "customer_id": 1234

Metadata takes the form of key-value pairs, such as name = Ben where name is the key, and Ben is the value. In the context of outbound messages, this metadata can then be used as a dimension when running reports across messages sent or used to search for a particular message if the content or destination address is unknown. Message metadata becomes even more powerful when used in two-way messaging applications. When an outbound message is sent with metadata, all replies to that message have the metadata of the outbound message added to them. In other words, metadata can be thought of as activity records.


How you can use it

Metadata permits the most effective levels of interoperability and allows data to be exchanged easily among disparate systems as it eliminates the need to store persistent data in the application. A common use of message metadata is cost center allocation – in a business where multiple departments are sending messages, and each department needs to be internally charged for messages sent. So if there are 3 departments –  A, B and C, then you can include each department name in the metadata and reports can be run using that data at the end of each month. Another use would be in marketing campaign analytics where you can tailor each message for a separate campaign and add a metadata tag to each type to distinguish it from the others. Since replies to those messages will contain the metadata of the outbound messages, you will be able to run analytics and find out which messages were the most effective.

Continue reading...

Best Practices for Webhooks
Ibrahim Tareq
January 18, 2019
Why unit testing is important?
Ibrahim Tareq
January 15, 2019
API design using Apiary
Ibrahim Tareq
January 14, 2019