Pulsarix 

Description
Pulsarix is an Elixir library for seamless interaction with Apache Kafka, focusing on message production capabilities. It provides a clean, functional interface for sending messages to Kafka topics with support for various production methods:
- Synchronous message production
- Asynchronous message production
- Callback-based approaches
- Batch message handling
Features
- Multiple message production strategies
- Type-safe message handling with proper typespecs
- Telemetry integration for monitoring and metrics
-
Flexible message formatting with support for:
- Binary keys and values
- Custom headers
- Timestamp control
- Batch operations
Installation
If available in Hex, the package can be installed
by adding pulsarix to your list of dependencies in mix.exs:
def deps do
[
{:pulsarix, "~> 1.0.0"}
]
endUsage
Warning
Ensure kafka is started.
Contributing
Before submitting a PR, ensure you run mix check and all checks passes
successfully.
Version Bumps
This project adheres to Semantic Versioning,
which means the version number will follow the format MAJOR.MINOR.PATCH.
Also, the github-tag-action is used to automatically create a new tag when the PR is merged to master.
When open a PR meant to generate a new version:
Update the
mix.exsandREADMEwith the new version.Update CHANGELOG with the new version tight to semantic versioning.
Don't forget to include in your commit the tag:
"#patch"for incrementPATCHversion. E.g.: "Fix failing tests (#patch)"."#minor"for incrementMINORversion. E.g.: "Add Telemetry utility to instrument the projects (#minor)"."#major"for incrementMAJORversion. E.g.: "Release x.y.z (#major)".
If for some reason GH actions are not working (maybe because we ran out of minutes), then push the tag manually, like so:
git tag -a v0.1.0 -m "Pulsarix version 0.1.0"
git push origin v0.1.0License
Apache License 2.0. See the project’s LICENSE file for details.
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/pulsarix.