syntax = "proto3";

package nln.stream.v1;

enum OutputFormat {
  OUTPUT_FORMAT_UNSPECIFIED = 0;
  JSON = 1;
}

message SubscribeRequest {
  string topic = 1;
  OutputFormat format = 2;
}

message SubscribeResponse {
  string topic = 1;
  uint64 partition = 2;
  uint64 offset = 3;
  int64 timestamp_ms = 4;
  bytes payload = 5;
}

service StreamService {
  rpc Subscribe(SubscribeRequest) returns (stream SubscribeResponse);
}
