Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Split IMessageSerializer and IMessageCompressor Interfaces #433

Closed
filipeesch opened this issue Sep 19, 2023 · 0 comments
Labels
breaking change enhancement New feature or request
Milestone

Comments

@filipeesch
Copy link
Member

Is your request related to a problem you have?

Currently, the KafkaFlow framework uses the IMessageSerializer and IMessageCompressor interfaces to handle both serialization/deserialization and compression/decompression of messages. While this approach has served us well, it can be more flexible and maintainable to split these interfaces into four separate interfaces: ISerializer, IDeserializer, ICompressor, and IDecompressor. This change will provide a more granular and specialized approach to message handling, improving code readability and maintainability.

Describe the solution you'd like

We propose splitting the existing IMessageSerializer and IMessageCompressor interfaces into the following four interfaces:

  1. ISerializer

    • This interface will be responsible for message serialization.
  2. IDeserializer

    • This interface will handle message deserialization.
  3. ICompressor

    • This interface will be used for message compression.
  4. IDecompressor

    • This interface will handle message decompression.

Each of these interfaces will have its own specific responsibilities, making it easier to implement and customize message handling based on the requirements of individual use cases.

Are you able to help bring it to life and contribute with a Pull Request?

Yes

Additional context

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change enhancement New feature or request
Development

No branches or pull requests

2 participants