Hi All,

I recently observed some behavior w.r.t proto message -
marshalling/unmarshalling. Wanted to know if there is a better way to
determine the contract break specifically for code written in C#?

Client (Version 1) and server (Version 1) were using different versions of
a message with some **breaking change**. My understanding **was** in case
of a contract break we will see some sort of exception but turns out the
field (*field3*) was just an empty object [*Not null*]. In our scenario it
is possible to have an empty object for that field, so checking null or
empty object won't help either.

Is there a guideline to determine a contract break at run time? Or do we
need to somehow ensure in our code change review process or build process
that ordinals are not changed?

*Version 1*
Message A {
string field1 = 1;
uint64 filed2 = 2;
map<string, int> field3 = 3;
}

*Version 2*
Message A {
string field1 = 1;
map<string, int> field3 =* 2;*
}

Regards,
Vivek

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CABsnPP%2BAGMb82dij2i%2BZ7FsSYBcMFqzQS0qdE8PWk_SDfJFH2w%40mail.gmail.com.

Reply via email to