I am in the process of updating a project to 1.0 and spent today debugging a rather odd test failure. When using input/output streams with IntegerSerde, things worked fine -- however, using LongSerde, every message value was 0! I eventually found that InMemorySystemDescriptor#getInputDescriptor ignores the serde passed to it. However, I had still specified in my config:
streams.in-0.samza.msg.serde=integer Apparently that *was* respected by some part of the system because integers were deserialized properly! Removing this configuration value results in my operator receiving a byte array since the in-memory system only uses NoOpSerde. This behavior appears inconsistent with the previous version of Samza. The old `getInputStream` was passed a serde that was always used, but since the new version receives a Descriptor that has already discarded the serde, I am forced into assuming NoOpSerde everywhere, at least for testing purposes. Not the end of the world, but it does introduce an inconsistency between the in-memory system and any other -- one that requires a fair bit of domain knowledge to avoid. As always, thanks for the great project!