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

Add support Avro publishing #373

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Conversation

samizzy
Copy link

@samizzy samizzy commented Oct 14, 2022

This PR is part of the effort to introduce Avro capability. In this first PR, Avro publishing feature has implemented.

  1. The public API for publishing is kept decoupled from Avro.
  2. The initialization for Avro EventResource is done from Resources.eventsBinary(..) method which first performs check whether the supplied event type schemas exist. It also fetches the version from Nakadi and later populate it in version field of EventMetadata automatically.
  3. A New abstraction called PayloadSerializer is introduced that takes care of serialization and holding Content Type information. Currently 2 implementations JsonPayloadSerializer and AvroPayloadSerializer exist and more can be added as desired later.
  4. Due to new Content Type, the Content Type information for every POST/PUT request needs to be passed.

@dehora
Copy link
Owner

dehora commented Oct 26, 2022

+771 −78

1/ I want to break this pr down into smaller pieces.

  • name changes in tests to make room for the feature
  • passing the media type
  • the test files
  • the actual feature
  • etc

2/ Avro itself

  • Will this when built create a hard dependency in the maven file on Avro? The library is designed to avoid that (the exception is slf4j).
  • I'd like to see more tests and files, but we can get to that.

@samizzy
Copy link
Author

samizzy commented Nov 1, 2022

@dehora In order to break down this PR, I have made a small PR that deals solely with abstracting payload serialization logic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants