You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by "Pachod, Joseph (GE Healthcare)" <Jo...@ge.com> on 2022/03/10 12:59:47 UTC

Artemis with JMS: best way to have python clients ?

Hi

We're currently using Artemis from JakartaEE and Spring Boot applications, both sending and consuming messages from durable topics through JMS 2.0.

We would like to also have python clients, still for pub/sub on top of durable topics, but we could move from JMS to something else if needed.

Is there "proven/recommended" ways to do so ?

Thanks in advance

Best regards
Joseph PACHOD
Staff Software Architect, DoseWatch
GE Healthcare


RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Posted by "Pachod, Joseph (GE Healthcare)" <Jo...@ge.com>.
Thanks a lot once more

-----Original Message-----
From: Edson Richter <ed...@hotmail.com> 
Sent: Wednesday, March 30, 2022 2:27 AM
To: users@activemq.apache.org
Subject: RES: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

I mean:

Java (using jms) send json message ==> ActiveMQ <== Go receive json message (using stomp) Or Go (using stomp) send json message ==> ActiveMQ <== Java receive json message (using jms)


ActiveMQ is a true asynchrnous messaging broker between different protocols – perhaps, you must take care of sharing compatible messages format – in my case, json (which is textual by nature) is compatible With both protocols (jms and stomp), then I don’t get anything wrong.


Regards,

Edson



Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para Windows

De: Pachod, Joseph (GE Healthcare)<ma...@ge.com>
Enviado:terça-feira, 29 de março de 2022 04:47
Para: users@activemq.apache.org<ma...@activemq.apache.org>
Assunto: RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Thanks a lot Edson

Does it mean you communicate between Java and Go using different protocols? I'll have to dig in more on the matter 😊

-----Original Message-----
From: Edson Richter <ed...@hotmail.com>
Sent: Tuesday, March 15, 2022 6:54 PM
To: users@activemq.apache.org
Subject: RES: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

I’m on same boat: I do use JMS on Java side, and Stomp on “Go” side.
Works great, but take care of the “notices” in documentation about some difference between both protocols.
If you use “json” as messages, then I do believe you’ll not find any difficulties. The problems normally arise when you use byte[] in message (Since STOMP is a text protocol).


Regards,

Edson Richter




Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para Windows

________________________________
De: Pachod, Joseph (GE Healthcare) <Jo...@ge.com>
Enviado: Monday, March 14, 2022 5:32:37 AM
Para: users@activemq.apache.org <us...@activemq.apache.org>
Assunto: RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Thanks for this extensive answer, thanks a lot. Let's dig more into STOMP 😊


-----Original Message-----
From: Simon Lundström <si...@su.se>
Sent: Friday, March 11, 2022 10:06 AM
To: users@activemq.apache.org
Subject: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

Hey Joseph!

We use ActiveMQ Classic but I'm pretty sure everything I say still applies to Artemis.

We use STOMP from script languages (Python and Perl currently) which works but you have to be aware of the documented drawbacks[1] of STOMP as a protocol. It works great though!

I would like to use AMQP 1.0 but there are only a few libraries that supports AMQP 1.0:
* Apache QPid Proton[2] uses C-bindings for Python so you have to compile
  it everytime you install it IIRC.
* Microsofts new uamqp which also has C-bindings and while it works with
  ActiveMQ requires some "hacks" (for lack of a better word). It's
  supposedly going to be rewritten in Pure Python which would be awesome
  but it looks like it's going slowly. There is also only one (major,
  recent) public contributor which makes me nervous about the future of
  the project.

All in all, I think we'll be using STOMP for the foreseeable future.

Without really looking that much into it MQTT seems too basic, even more than STOMP, to support the pub/sub and advanced routing that I suspect that you will use. But I have no idea.

BR,
- Simon

1, <https://activemq.apache.org/stomp.html>
<https://activemq.apache.org/components/artemis/documentation/latest/stomp.html>
2, <https://pypi.org/project/python-qpid-proton/>
3, <https://pypi.org/project/uamqp/>

On Thu, 2022-03-10 at 13:59:47 +0100, Pachod, Joseph (GE Healthcare) wrote:
> Hi
>
> We're currently using Artemis from JakartaEE and Spring Boot applications, both sending and consuming messages from durable topics through JMS 2.0.
>
> We would like to also have python clients, still for pub/sub on top of durable topics, but we could move from JMS to something else if needed.
>
> Is there "proven/recommended" ways to do so ?
>
> Thanks in advance
>
> Best regards
> Joseph PACHOD
> Staff Software Architect, DoseWatch
> GE Healthcare
>


RES: EXT: Re: Artemis with JMS: best way to have python clients ?

Posted by Edson Richter <ed...@hotmail.com>.
I mean:

Java (using jms) send json message ==> ActiveMQ <== Go receive json message (using stomp)
Or
Go (using stomp) send json message ==> ActiveMQ <== Java receive json message (using jms)


ActiveMQ is a true asynchrnous messaging broker between different protocols – perhaps, you must take care of sharing compatible messages format – in my case, json (which is textual by nature) is compatible With both protocols (jms and stomp), then I don’t get anything wrong.


Regards,

Edson



Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para Windows

De: Pachod, Joseph (GE Healthcare)<ma...@ge.com>
Enviado:terça-feira, 29 de março de 2022 04:47
Para: users@activemq.apache.org<ma...@activemq.apache.org>
Assunto: RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Thanks a lot Edson

Does it mean you communicate between Java and Go using different protocols? I'll have to dig in more on the matter 😊

-----Original Message-----
From: Edson Richter <ed...@hotmail.com>
Sent: Tuesday, March 15, 2022 6:54 PM
To: users@activemq.apache.org
Subject: RES: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

I’m on same boat: I do use JMS on Java side, and Stomp on “Go” side.
Works great, but take care of the “notices” in documentation about some difference between both protocols.
If you use “json” as messages, then I do believe you’ll not find any difficulties. The problems normally arise when you use byte[] in message (Since STOMP is a text protocol).


Regards,

Edson Richter




Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para Windows

________________________________
De: Pachod, Joseph (GE Healthcare) <Jo...@ge.com>
Enviado: Monday, March 14, 2022 5:32:37 AM
Para: users@activemq.apache.org <us...@activemq.apache.org>
Assunto: RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Thanks for this extensive answer, thanks a lot. Let's dig more into STOMP 😊


-----Original Message-----
From: Simon Lundström <si...@su.se>
Sent: Friday, March 11, 2022 10:06 AM
To: users@activemq.apache.org
Subject: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

Hey Joseph!

We use ActiveMQ Classic but I'm pretty sure everything I say still applies to Artemis.

We use STOMP from script languages (Python and Perl currently) which works but you have to be aware of the documented drawbacks[1] of STOMP as a protocol. It works great though!

I would like to use AMQP 1.0 but there are only a few libraries that supports AMQP 1.0:
* Apache QPid Proton[2] uses C-bindings for Python so you have to compile
  it everytime you install it IIRC.
* Microsofts new uamqp which also has C-bindings and while it works with
  ActiveMQ requires some "hacks" (for lack of a better word). It's
  supposedly going to be rewritten in Pure Python which would be awesome
  but it looks like it's going slowly. There is also only one (major,
  recent) public contributor which makes me nervous about the future of
  the project.

All in all, I think we'll be using STOMP for the foreseeable future.

Without really looking that much into it MQTT seems too basic, even more than STOMP, to support the pub/sub and advanced routing that I suspect that you will use. But I have no idea.

BR,
- Simon

1, <https://activemq.apache.org/stomp.html>
<https://activemq.apache.org/components/artemis/documentation/latest/stomp.html>
2, <https://pypi.org/project/python-qpid-proton/>
3, <https://pypi.org/project/uamqp/>

On Thu, 2022-03-10 at 13:59:47 +0100, Pachod, Joseph (GE Healthcare) wrote:
> Hi
>
> We're currently using Artemis from JakartaEE and Spring Boot applications, both sending and consuming messages from durable topics through JMS 2.0.
>
> We would like to also have python clients, still for pub/sub on top of durable topics, but we could move from JMS to something else if needed.
>
> Is there "proven/recommended" ways to do so ?
>
> Thanks in advance
>
> Best regards
> Joseph PACHOD
> Staff Software Architect, DoseWatch
> GE Healthcare
>


RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Posted by "Pachod, Joseph (GE Healthcare)" <Jo...@ge.com>.
Thanks a lot Justin!

-----Original Message-----
From: Justin Bertram <jb...@apache.org> 
Sent: Wednesday, March 30, 2022 9:26 PM
To: users@activemq.apache.org
Subject: Re: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

You should be able to send a message to the broker with any supported protocol and consume that same message with any supported protocol. The broker will take care of any necessary conversions. This is one of the main reasons why message brokers are often used to integrate lots of different types of applications.


Justin

On Tue, Mar 29, 2022 at 2:47 AM Pachod, Joseph (GE Healthcare) < Joseph.Pachod@ge.com> wrote:

> Thanks a lot Edson
>
> Does it mean you communicate between Java and Go using different 
> protocols? I'll have to dig in more on the matter 😊
>
> -----Original Message-----
> From: Edson Richter <ed...@hotmail.com>
> Sent: Tuesday, March 15, 2022 6:54 PM
> To: users@activemq.apache.org
> Subject: RES: EXT: Re: Artemis with JMS: best way to have python clients ?
>
> AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez 
> valider l'adresse e-mail de l'expéditeur avant de cliquer sur les 
> liens ou les pièces jointes, car ils risquent de ne pas être sûrs.
>
> I’m on same boat: I do use JMS on Java side, and Stomp on “Go” side.
> Works great, but take care of the “notices” in documentation about 
> some difference between both protocols.
> If you use “json” as messages, then I do believe you’ll not find any 
> difficulties. The problems normally arise when you use byte[] in 
> message (Since STOMP is a text protocol).
>
>
> Regards,
>
> Edson Richter
>
>
>
>
> Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para 
> Windows
>
> ________________________________
> De: Pachod, Joseph (GE Healthcare) <Jo...@ge.com>
> Enviado: Monday, March 14, 2022 5:32:37 AM
> Para: users@activemq.apache.org <us...@activemq.apache.org>
> Assunto: RE: EXT: Re: Artemis with JMS: best way to have python clients ?
>
> Thanks for this extensive answer, thanks a lot. Let's dig more into 
> STOMP
> 😊
>
>
> -----Original Message-----
> From: Simon Lundström <si...@su.se>
> Sent: Friday, March 11, 2022 10:06 AM
> To: users@activemq.apache.org
> Subject: EXT: Re: Artemis with JMS: best way to have python clients ?
>
> AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez 
> valider l'adresse e-mail de l'expéditeur avant de cliquer sur les 
> liens ou les pièces jointes, car ils risquent de ne pas être sûrs.
>
> Hey Joseph!
>
> We use ActiveMQ Classic but I'm pretty sure everything I say still 
> applies to Artemis.
>
> We use STOMP from script languages (Python and Perl currently) which 
> works but you have to be aware of the documented drawbacks[1] of STOMP 
> as a protocol. It works great though!
>
> I would like to use AMQP 1.0 but there are only a few libraries that 
> supports AMQP 1.0:
> * Apache QPid Proton[2] uses C-bindings for Python so you have to compile
>   it everytime you install it IIRC.
> * Microsofts new uamqp which also has C-bindings and while it works with
>   ActiveMQ requires some "hacks" (for lack of a better word). It's
>   supposedly going to be rewritten in Pure Python which would be awesome
>   but it looks like it's going slowly. There is also only one (major,
>   recent) public contributor which makes me nervous about the future of
>   the project.
>
> All in all, I think we'll be using STOMP for the foreseeable future.
>
> Without really looking that much into it MQTT seems too basic, even 
> more than STOMP, to support the pub/sub and advanced routing that I 
> suspect that you will use. But I have no idea.
>
> BR,
> - Simon
>
> 1, <https://activemq.apache.org/stomp.html>
> <
> https://activemq.apache.org/components/artemis/documentation/latest/st
> omp.html
> >
> 2, <https://pypi.org/project/python-qpid-proton/>
> 3, <https://pypi.org/project/uamqp/>
>
> On Thu, 2022-03-10 at 13:59:47 +0100, Pachod, Joseph (GE Healthcare) wrote:
> > Hi
> >
> > We're currently using Artemis from JakartaEE and Spring Boot
> applications, both sending and consuming messages from durable topics 
> through JMS 2.0.
> >
> > We would like to also have python clients, still for pub/sub on top 
> > of
> durable topics, but we could move from JMS to something else if needed.
> >
> > Is there "proven/recommended" ways to do so ?
> >
> > Thanks in advance
> >
> > Best regards
> > Joseph PACHOD
> > Staff Software Architect, DoseWatch
> > GE Healthcare
> >
>

Re: EXT: Re: Artemis with JMS: best way to have python clients ?

Posted by Justin Bertram <jb...@apache.org>.
You should be able to send a message to the broker with any supported
protocol and consume that same message with any supported protocol. The
broker will take care of any necessary conversions. This is one of the main
reasons why message brokers are often used to integrate lots of different
types of applications.


Justin

On Tue, Mar 29, 2022 at 2:47 AM Pachod, Joseph (GE Healthcare) <
Joseph.Pachod@ge.com> wrote:

> Thanks a lot Edson
>
> Does it mean you communicate between Java and Go using different
> protocols? I'll have to dig in more on the matter 😊
>
> -----Original Message-----
> From: Edson Richter <ed...@hotmail.com>
> Sent: Tuesday, March 15, 2022 6:54 PM
> To: users@activemq.apache.org
> Subject: RES: EXT: Re: Artemis with JMS: best way to have python clients ?
>
> AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider
> l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les
> pièces jointes, car ils risquent de ne pas être sûrs.
>
> I’m on same boat: I do use JMS on Java side, and Stomp on “Go” side.
> Works great, but take care of the “notices” in documentation about some
> difference between both protocols.
> If you use “json” as messages, then I do believe you’ll not find any
> difficulties. The problems normally arise when you use byte[] in message
> (Since STOMP is a text protocol).
>
>
> Regards,
>
> Edson Richter
>
>
>
>
> Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para
> Windows
>
> ________________________________
> De: Pachod, Joseph (GE Healthcare) <Jo...@ge.com>
> Enviado: Monday, March 14, 2022 5:32:37 AM
> Para: users@activemq.apache.org <us...@activemq.apache.org>
> Assunto: RE: EXT: Re: Artemis with JMS: best way to have python clients ?
>
> Thanks for this extensive answer, thanks a lot. Let's dig more into STOMP
> 😊
>
>
> -----Original Message-----
> From: Simon Lundström <si...@su.se>
> Sent: Friday, March 11, 2022 10:06 AM
> To: users@activemq.apache.org
> Subject: EXT: Re: Artemis with JMS: best way to have python clients ?
>
> AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider
> l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les
> pièces jointes, car ils risquent de ne pas être sûrs.
>
> Hey Joseph!
>
> We use ActiveMQ Classic but I'm pretty sure everything I say still applies
> to Artemis.
>
> We use STOMP from script languages (Python and Perl currently) which works
> but you have to be aware of the documented drawbacks[1] of STOMP as a
> protocol. It works great though!
>
> I would like to use AMQP 1.0 but there are only a few libraries that
> supports AMQP 1.0:
> * Apache QPid Proton[2] uses C-bindings for Python so you have to compile
>   it everytime you install it IIRC.
> * Microsofts new uamqp which also has C-bindings and while it works with
>   ActiveMQ requires some "hacks" (for lack of a better word). It's
>   supposedly going to be rewritten in Pure Python which would be awesome
>   but it looks like it's going slowly. There is also only one (major,
>   recent) public contributor which makes me nervous about the future of
>   the project.
>
> All in all, I think we'll be using STOMP for the foreseeable future.
>
> Without really looking that much into it MQTT seems too basic, even more
> than STOMP, to support the pub/sub and advanced routing that I suspect that
> you will use. But I have no idea.
>
> BR,
> - Simon
>
> 1, <https://activemq.apache.org/stomp.html>
> <
> https://activemq.apache.org/components/artemis/documentation/latest/stomp.html
> >
> 2, <https://pypi.org/project/python-qpid-proton/>
> 3, <https://pypi.org/project/uamqp/>
>
> On Thu, 2022-03-10 at 13:59:47 +0100, Pachod, Joseph (GE Healthcare) wrote:
> > Hi
> >
> > We're currently using Artemis from JakartaEE and Spring Boot
> applications, both sending and consuming messages from durable topics
> through JMS 2.0.
> >
> > We would like to also have python clients, still for pub/sub on top of
> durable topics, but we could move from JMS to something else if needed.
> >
> > Is there "proven/recommended" ways to do so ?
> >
> > Thanks in advance
> >
> > Best regards
> > Joseph PACHOD
> > Staff Software Architect, DoseWatch
> > GE Healthcare
> >
>

RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Posted by "Pachod, Joseph (GE Healthcare)" <Jo...@ge.com>.
Thanks a lot Edson

Does it mean you communicate between Java and Go using different protocols? I'll have to dig in more on the matter 😊

-----Original Message-----
From: Edson Richter <ed...@hotmail.com> 
Sent: Tuesday, March 15, 2022 6:54 PM
To: users@activemq.apache.org
Subject: RES: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

I’m on same boat: I do use JMS on Java side, and Stomp on “Go” side.
Works great, but take care of the “notices” in documentation about some difference between both protocols.
If you use “json” as messages, then I do believe you’ll not find any difficulties. The problems normally arise when you use byte[] in message (Since STOMP is a text protocol).


Regards,

Edson Richter




Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para Windows

________________________________
De: Pachod, Joseph (GE Healthcare) <Jo...@ge.com>
Enviado: Monday, March 14, 2022 5:32:37 AM
Para: users@activemq.apache.org <us...@activemq.apache.org>
Assunto: RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Thanks for this extensive answer, thanks a lot. Let's dig more into STOMP 😊


-----Original Message-----
From: Simon Lundström <si...@su.se>
Sent: Friday, March 11, 2022 10:06 AM
To: users@activemq.apache.org
Subject: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

Hey Joseph!

We use ActiveMQ Classic but I'm pretty sure everything I say still applies to Artemis.

We use STOMP from script languages (Python and Perl currently) which works but you have to be aware of the documented drawbacks[1] of STOMP as a protocol. It works great though!

I would like to use AMQP 1.0 but there are only a few libraries that supports AMQP 1.0:
* Apache QPid Proton[2] uses C-bindings for Python so you have to compile
  it everytime you install it IIRC.
* Microsofts new uamqp which also has C-bindings and while it works with
  ActiveMQ requires some "hacks" (for lack of a better word). It's
  supposedly going to be rewritten in Pure Python which would be awesome
  but it looks like it's going slowly. There is also only one (major,
  recent) public contributor which makes me nervous about the future of
  the project.

All in all, I think we'll be using STOMP for the foreseeable future.

Without really looking that much into it MQTT seems too basic, even more than STOMP, to support the pub/sub and advanced routing that I suspect that you will use. But I have no idea.

BR,
- Simon

1, <https://activemq.apache.org/stomp.html>
<https://activemq.apache.org/components/artemis/documentation/latest/stomp.html>
2, <https://pypi.org/project/python-qpid-proton/>
3, <https://pypi.org/project/uamqp/>

On Thu, 2022-03-10 at 13:59:47 +0100, Pachod, Joseph (GE Healthcare) wrote:
> Hi
>
> We're currently using Artemis from JakartaEE and Spring Boot applications, both sending and consuming messages from durable topics through JMS 2.0.
>
> We would like to also have python clients, still for pub/sub on top of durable topics, but we could move from JMS to something else if needed.
>
> Is there "proven/recommended" ways to do so ?
>
> Thanks in advance
>
> Best regards
> Joseph PACHOD
> Staff Software Architect, DoseWatch
> GE Healthcare
>

RES: EXT: Re: Artemis with JMS: best way to have python clients ?

Posted by Edson Richter <ed...@hotmail.com>.
I’m on same boat: I do use JMS on Java side, and Stomp on “Go” side.
Works great, but take care of the “notices” in documentation about some difference between both protocols.
If you use “json” as messages, then I do believe you’ll not find any difficulties. The problems normally arise when you use byte[] in message (Since STOMP is a text protocol).


Regards,

Edson Richter




Enviado do Email<https://go.microsoft.com/fwlink/?LinkId=550986> para Windows

________________________________
De: Pachod, Joseph (GE Healthcare) <Jo...@ge.com>
Enviado: Monday, March 14, 2022 5:32:37 AM
Para: users@activemq.apache.org <us...@activemq.apache.org>
Assunto: RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Thanks for this extensive answer, thanks a lot. Let's dig more into STOMP 😊


-----Original Message-----
From: Simon Lundström <si...@su.se>
Sent: Friday, March 11, 2022 10:06 AM
To: users@activemq.apache.org
Subject: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

Hey Joseph!

We use ActiveMQ Classic but I'm pretty sure everything I say still applies to Artemis.

We use STOMP from script languages (Python and Perl currently) which works but you have to be aware of the documented drawbacks[1] of STOMP as a protocol. It works great though!

I would like to use AMQP 1.0 but there are only a few libraries that supports AMQP 1.0:
* Apache QPid Proton[2] uses C-bindings for Python so you have to compile
  it everytime you install it IIRC.
* Microsofts new uamqp which also has C-bindings and while it works with
  ActiveMQ requires some "hacks" (for lack of a better word). It's
  supposedly going to be rewritten in Pure Python which would be awesome
  but it looks like it's going slowly. There is also only one (major,
  recent) public contributor which makes me nervous about the future of
  the project.

All in all, I think we'll be using STOMP for the foreseeable future.

Without really looking that much into it MQTT seems too basic, even more than STOMP, to support the pub/sub and advanced routing that I suspect that you will use. But I have no idea.

BR,
- Simon

1, <https://activemq.apache.org/stomp.html>
<https://activemq.apache.org/components/artemis/documentation/latest/stomp.html>
2, <https://pypi.org/project/python-qpid-proton/>
3, <https://pypi.org/project/uamqp/>

On Thu, 2022-03-10 at 13:59:47 +0100, Pachod, Joseph (GE Healthcare) wrote:
> Hi
>
> We're currently using Artemis from JakartaEE and Spring Boot applications, both sending and consuming messages from durable topics through JMS 2.0.
>
> We would like to also have python clients, still for pub/sub on top of durable topics, but we could move from JMS to something else if needed.
>
> Is there "proven/recommended" ways to do so ?
>
> Thanks in advance
>
> Best regards
> Joseph PACHOD
> Staff Software Architect, DoseWatch
> GE Healthcare
>

RE: EXT: Re: Artemis with JMS: best way to have python clients ?

Posted by "Pachod, Joseph (GE Healthcare)" <Jo...@ge.com>.
Thanks for this extensive answer, thanks a lot. Let's dig more into STOMP 😊


-----Original Message-----
From: Simon Lundström <si...@su.se> 
Sent: Friday, March 11, 2022 10:06 AM
To: users@activemq.apache.org
Subject: EXT: Re: Artemis with JMS: best way to have python clients ?

AVERTISSEMENT: cet email provient de l'extérieur de GE. Veuillez valider l'adresse e-mail de l'expéditeur avant de cliquer sur les liens ou les pièces jointes, car ils risquent de ne pas être sûrs.

Hey Joseph!

We use ActiveMQ Classic but I'm pretty sure everything I say still applies to Artemis.

We use STOMP from script languages (Python and Perl currently) which works but you have to be aware of the documented drawbacks[1] of STOMP as a protocol. It works great though!

I would like to use AMQP 1.0 but there are only a few libraries that supports AMQP 1.0:
* Apache QPid Proton[2] uses C-bindings for Python so you have to compile
  it everytime you install it IIRC.
* Microsofts new uamqp which also has C-bindings and while it works with
  ActiveMQ requires some "hacks" (for lack of a better word). It's
  supposedly going to be rewritten in Pure Python which would be awesome
  but it looks like it's going slowly. There is also only one (major,
  recent) public contributor which makes me nervous about the future of
  the project.

All in all, I think we'll be using STOMP for the foreseeable future.

Without really looking that much into it MQTT seems too basic, even more than STOMP, to support the pub/sub and advanced routing that I suspect that you will use. But I have no idea.

BR,
- Simon

1, <https://activemq.apache.org/stomp.html>
<https://activemq.apache.org/components/artemis/documentation/latest/stomp.html>
2, <https://pypi.org/project/python-qpid-proton/>
3, <https://pypi.org/project/uamqp/>

On Thu, 2022-03-10 at 13:59:47 +0100, Pachod, Joseph (GE Healthcare) wrote:
> Hi
> 
> We're currently using Artemis from JakartaEE and Spring Boot applications, both sending and consuming messages from durable topics through JMS 2.0.
> 
> We would like to also have python clients, still for pub/sub on top of durable topics, but we could move from JMS to something else if needed.
> 
> Is there "proven/recommended" ways to do so ?
> 
> Thanks in advance
> 
> Best regards
> Joseph PACHOD
> Staff Software Architect, DoseWatch
> GE Healthcare
> 

Re: Artemis with JMS: best way to have python clients ?

Posted by Simon Lundström <si...@su.se>.
Hey Joseph!

We use ActiveMQ Classic but I'm pretty sure everything I say still
applies to Artemis.

We use STOMP from script languages (Python and Perl currently) which
works but you have to be aware of the documented drawbacks[1] of STOMP
as a protocol. It works great though!

I would like to use AMQP 1.0 but there are only a few libraries that
supports AMQP 1.0:
* Apache QPid Proton[2] uses C-bindings for Python so you have to compile
  it everytime you install it IIRC.
* Microsofts new uamqp which also has C-bindings and while it works with
  ActiveMQ requires some "hacks" (for lack of a better word). It's
  supposedly going to be rewritten in Pure Python which would be awesome
  but it looks like it's going slowly. There is also only one (major,
  recent) public contributor which makes me nervous about the future of
  the project.

All in all, I think we'll be using STOMP for the foreseeable future.

Without really looking that much into it MQTT seems too basic, even more
than STOMP, to support the pub/sub and advanced routing that I suspect
that you will use. But I have no idea.

BR,
- Simon

1, <https://activemq.apache.org/stomp.html>
<https://activemq.apache.org/components/artemis/documentation/latest/stomp.html>
2, <https://pypi.org/project/python-qpid-proton/>
3, <https://pypi.org/project/uamqp/>

On Thu, 2022-03-10 at 13:59:47 +0100, Pachod, Joseph (GE Healthcare) wrote:
> Hi
> 
> We're currently using Artemis from JakartaEE and Spring Boot applications, both sending and consuming messages from durable topics through JMS 2.0.
> 
> We would like to also have python clients, still for pub/sub on top of durable topics, but we could move from JMS to something else if needed.
> 
> Is there "proven/recommended" ways to do so ?
> 
> Thanks in advance
> 
> Best regards
> Joseph PACHOD
> Staff Software Architect, DoseWatch
> GE Healthcare
>