github.com/twmb/franz-go/pkg/kmsg (go): Package kmsg contains Kafka request and response types and autogenerated serialization and deserialization functions.  This package may bump major versions whenever Kafka makes a backwards incompatible protocol change, per the types chosen for this package. For example, Kafka can change a field from non-nullable to nullable, which would require changing a field from a non-pointer to a pointer. We could get around this by making everything an opaque struct and having getters, but that is more tedious than having a few rare major version bumps.  If you are using this package directly with kgo, you should either always use New functions, or Default functions after creating structs, or you should pin the max supported version. If you use New functions, you will have safe defaults as new fields are added. If you pin versions, you will avoid new fields being used. If you do neither of these, you may opt in to new fields that do not have safe zero value defaults, and this may lead to errors or unexpected results.  Thus, whenever you initialize a struct from this package, do the following:  Most of this package is generated, but a few things are manual. What is manual: all interfaces, the RequestFormatter, record / message / record batch reading, and sticky member metadata serialization.
Keywords: client|go|golang|kafka|kafka-client