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

RabbitMQ 4.0 (AMQP 1.0) Erlang Client #12510

Closed
ono opened this issue Oct 12, 2024 · 9 comments
Closed

RabbitMQ 4.0 (AMQP 1.0) Erlang Client #12510

ono opened this issue Oct 12, 2024 · 9 comments
Milestone

Comments

@ono
Copy link

ono commented Oct 12, 2024

Is your feature request related to a problem? Please describe.

Congratulations to the team on RabbitMQ 4.0 Release 🎉

I am a maintainer of the Elixr RabbitMQ client. I am wondering how I can help to introduce this version to the Elixir community.

  • Are you planning to update amqp_client for AMQP 1.0?
  • Or will the client strategy be completely different, e.g., will it be a different client library with different APIs?
  • Or would you recommend building the Elixir library independently from the Erlang library?
  • Or do you plan to build an official Elixir library by yourself so a community version won't be needed?

Any suggestions, insights, views and advice are welcome. Thank you!

Describe the solution you'd like

N/A

Describe alternatives you've considered

No response

Additional context

No response

@michaelklishin
Copy link
Member

Now that 4.0.x is moving closer to official Erlang 27 support (the known issues are on the Erlang/OTP side), there would be an important enough reason to fixing publishing to Hex.

@ansd
Copy link
Member

ansd commented Oct 13, 2024

Thank you @ono for maintaining the Elixir client.

Are you planning to update amqp_client for AMQP 1.0?

No, because:

  • amqp_client is the AMQP 0.9.1 client
  • amqp10_client is an AMQP 1.0 client that can talk to any AMQP 1.0 broker
  • rabbitmq_amqp_client wraps the amqp10_client with RabbitMQ specific features and is therefore an AMQP 1.0 client used specifically with RabbitMQ.

Or will the client strategy be completely different, e.g., will it be a different client library with different APIs?

Yes, see answer above.

Or would you recommend building the Elixir library independently from the Erlang library?

I think writing a new Elixir library which wraps rabbitmq_amqp_client and amqp10_client makes most sense to me.

Or do you plan to build an official Elixir library by yourself so a community version won't be needed?

Not at this point. We are currently developing clients for:

  • Java
  • .NET
  • Go

@ono
Copy link
Author

ono commented Oct 13, 2024

@ansd I see. That makes sense. Is there a plan to release rabbitmq_amqp_client and amqp10_client to Hex? Even RC version would be useful. Thanks!

@michaelklishin
Copy link
Member

@ono we need to resume releases for amqp_client (the AMQP 0-9-1 we have up on Hex) first.

@michaelklishin
Copy link
Member

michaelklishin commented Oct 28, 2024

4.0.3 version of the AMQP 0-9-1 amqp_client (built on Erlang 26.x) is up on Hex.pm.

amqp10_client for AMQP 1.0 is also out.

@michaelklishin michaelklishin added this to the 4.0.3 milestone Oct 28, 2024
@ono
Copy link
Author

ono commented Oct 28, 2024

Great news!

I have a few questions.

  • amqp_client 4.0.3 is compatible for both RabbitMQ 3.x and 4.x
    • I thought RabbitMQ 4.x supports only AMQP 1.0 but that's just my misunderstanding and it still supports 0.9.1
    • Do you have any performance comparison data 0.9.1 v.s. 1.0?
    • Is there any functionality RabbitMQ 4.0 supports only with AMQP 1.0?
  • amqp10_client has been fully tested with RabbitMQ 4.0.3?
    • Asking because README mention Shovel plugin

Thanks!

@michaelklishin
Copy link
Member

michaelklishin commented Oct 28, 2024

@ono amqp_client 4.x will be able to connect and perform all key operations even to/against RabbitMQ 2.0 from 2009 or so.

amqp10_common is what AMQP 1.0 shovels use under the hood, plus some commercial features in Tanzu RabbitMQ.

@ansd
Copy link
Member

ansd commented Oct 28, 2024

I thought RabbitMQ 4.x supports only AMQP 1.0 but that's just my misunderstanding and it still supports 0.9.1

RabbitMQ 4.x supports both AMQP 1.0 and AMQP 0.9.1.

Do you have any performance comparison data 0.9.1 v.s. 1.0?

Yes, see https://www.rabbitmq.com/blog/tags/amqp-1-0

Is there any functionality RabbitMQ 4.0 supports only with AMQP 1.0?

Yes, see https://www.rabbitmq.com/blog/tags/amqp-1-0 and https://www.rabbitmq.com/docs/next/amqp#amqp-10-features

amqp10_client has been fully tested with RabbitMQ 4.0.3?

This client has been tested against RabbitMQ 4.0.3.

@ono
Copy link
Author

ono commented Oct 28, 2024

Fantastic. Thank you @michaelklishin and @ansd !!

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

No branches or pull requests

3 participants