code: function convertDataToFrame(data, sequence) {
      // Data frame:
      // 1 | D | <sequence> | <nkeys> | <key_length_i> | <key_i> | <val_length_i> | <val_i> | ...
  
      var dottedNotationData = {};
      objectToFlatDottedNotation(data, '', dottedNotationData);
      logger.debug('Key-value pairs in dotted notation', dottedNotationData);
  
      var numberOfPairs = Object.keys(dottedNotationData).length;
      var bufferSize = 1 + 1 + 4 + 4 + (4 * numberOfPairs) + (4 * numberOfPairs); // "1" | "D" | <seq> | <nkeys> | 4 * <key_length> | 4 * <val_length>
  
      for (var k in dottedNotationData) {
          bufferSize += dottedNotationData[k].length + k.length;
      }
  
      var buffer = new Buffer(bufferSize);
      buffer.write('1D', 0, 2);
      buffer.writeUInt32BE(sequence, 2);
      buffer.writeUInt32BE(numberOfPairs, 6);
  
      var offset = 10;
      for (k in dottedNotationData) {
          buffer.writeUInt32BE(k.length, offset);
          buffer.write(k, offset + 4, k.length);
          buffer.writeUInt32BE(dottedNotationData[k].length, offset + 4 + k.length);
          buffer.write(dottedNotationData[k], offset + 4 + k.length + 4, dottedNotationData[k].length);
          offset += 4 + k.length + 4 + dottedNotationData[k].length;
      }
  
      return buffer;
  }
docs: /*
  Converts an object into a Lumberjack data frame
  
  @param {object} data The object to be converted into a Lumberjack frame
  
  @return A Buffer with a Lumberjack frame representing the provided data object