GithubHelp home page GithubHelp logo

katanox / tabour Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 2.0 221 KB

Kotlin's library to make working with queues/topics much easier.

License: Apache License 2.0

Kotlin 100.00%
queue kotlin spring-boot sqs

tabour's Introduction

Tabour

Tabour is a Kotlin library which allows you to interact with message brokers.

Installation

The library contains the following modules

To use Tabour only core is required. Proto and Spring packages contain helpers and functionality regarding

  • Protobuf
  • Spring Boot

Supported messaging systems

  • SQS

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

License

Apache License. Please see License File for more information.

tabour's People

Contributors

ahmadshabib avatar dependabot[bot] avatar gpopides avatar mantas-gav avatar orkungdk avatar esrefa avatar

Stargazers

A. Şemsettin Özdemirden avatar Georgios avatar Abed Hadri avatar  avatar  avatar

Watchers

James Cloos avatar Vasilis Dimitriou avatar A. Şemsettin Özdemirden avatar

tabour's Issues

Support FIFO queues

currently, when trying to publish to a FIFO queue, publisher gets an error:
The request must contain the parameter MessageGroupId. (Service: AmazonSQS; Status Code: 400; Error Code: MissingParameter; Request ID: 8bdd0ee6-b8cf-5afe-8d10-57ad1b795b1c)

Warning when consumption is not enabled

Currently when the consumers are created and the enable consumption is not set to true no warning is being shown to the user that his consumers will not work.
Would be good if we show a warning telling enable-consumption is not set.

String consumption

With the new release, we are facing an issue with casting the byte array to string when consuming.
We need to change that to string for consistency.

Readme improvement

Read me has some missing information about the support and a couple of spelling mistakes that need to be fixed.

Consider generic `produceMessage` function regardless of registry time

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Log level when message is not processed

Describe the bug
When a message is not being processed we are logging that as an error, which causes the alerts to be triggered for each of these messages. Temporary that is being changed to warn level but for the long term, the design of error catching will be changed.

Improve component scanning

Currently, you need to add
@ComponentScan(basePackages = ["com.katanox.tabour", "com.yourorg.yourbasepackage"])
which is a little unwieldy. Might be a way to do without explicitly adding this annotation?

Allow user to decide the action when a consumption of a message fails

Is your feature request related to a problem? Please describe.
When a message fails to be consumed, we only log the exception but there is no flexibility to allow the implementer to decide to do something else

Describe the solution you'd like
Allow the implementer to do something other than the logging

Automatic update of dependencies

Using dependency bot we can make the dependency update an automatic operation as it will create pull requests on a daily basis if there is any dependency to be updated

Maven Central Deployment

We are currently only using GitHub packages to deploy the library, which seems like not an ideal option for users.
So we need to support the deployment to maven central.

Improve object to message serialization

The current implementation uses .toString() which seems unreliable (there's no implicit contract for toString to include every variable and to be able to reconstruct the object from the toString). It works only because our use case is proto files, which provide a nice conversion from a piece of text. We should look into something more robust, such as json serialization.

Allow deleting events

The current implementation doesn't allow the deletion of event messages, it only happens after a successful consumption.
We need to provide this functionality as part of the library's publisher implementaion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.