@Override
    public Object deserializeKey(String sspString, DeserializationContext ctxt) throws IOException {
      String[] parts = sspString.split("\\.");
      if (parts.length < 3) {
        throw new IllegalArgumentException("System stream partition expected in format 'system.stream.partition");
      }
      return new SystemStreamPartition(
          new SystemStream(parts[0], parts[1]), new Partition(Integer.parseInt(parts[2])));
    }
@return Returns a new ObjectMapper that's been configured to (de)serialize
        Samza's job data model, and simple data types such as TaskName,
        Partition, Config, and SystemStreamPartition.
samza-core/src/main/java/org/apache/samza/serializers/model/SamzaObjectMapper.java