Tzu-Li (Gordon) Tai created FLINK-21171:
-------------------------------------------

             Summary: Introduce TypedValue to the StateFun request-reply 
protocol
                 Key: FLINK-21171
                 URL: https://issues.apache.org/jira/browse/FLINK-21171
             Project: Flink
          Issue Type: New Feature
          Components: Stateful Functions
            Reporter: Tzu-Li (Gordon) Tai
            Assignee: Tzu-Li (Gordon) Tai
             Fix For: statefun-3.0.0


Currently, all values being passed around via the request-reply protocol, are 
of the Protobuf {{Any}} type. This includes payloads of outgoing messages to 
other functions, and also state values.

This has a few shortcomings:
* All user records are strictly required to be modeled and wrapped as a 
Protobuf message - even for simple primitive type. This makes it awkward to 
work with for many common types of messages, for example JSON.
* For data persisted as state, with each state value being a Protobuf {{Any}}, 
each value would also redundantly store the type urls associated with each 
Protobuf message.

Instead, we'd like to introduced a {{TypedValue}} construct that replaces 
{{Any}} everywhere in the protocol, for both messages and state values:
{code}
message TypedValue {
    string typename = 1;
    bytes value = 2;
}
{code}

The {{typename}} here directly maps to the type concept introduced in 
FLINK-21061.
For state, we directly write the value bytes of a {{TypedValue}} into state, 
and the {{typename}} is the meta information snapshotted by the state 
serializer (see FLINK-21061).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to