Utilizing Designer with Pipeline

stushep
stushep Member Posts: 20

Good morning Solace world...

Am continuing my progress with Solace and going well now up and running.

Am onto playing with the Designer and am unable to get a message to port through an app.

I have a simple app in which it has:
1 event for the topic testing/newmessage (incoming)
1 event for the topic testing/outmessage (outgoing)
My main app has then subscribed to the incoming event and set to publish to the outgoing event.

I have a queue setup which is subscribed to testing/outmessage.

I set my python subscriber to monitor my queue.

If i publish to testing/outmessage, this is picked up by the subscriber and i see the result. However if i publish to testing/newmessage , the message is not ending up within my queue.

Are there any steps necessary to link the App to the Service?
Is there a way of maybe viewing logs for the app to see a message arrived but was not processed through the app maybe?

Thank you as always :smile:

Tagged:

Comments

  • Tamimi
    Tamimi Member, Administrator, Employee Posts: 541 admin

    Hey @stushep

    I have a queue setup which is subscribed to testing/outmessage

    You will need to add testing/newmessage as a subscription to your queue as well! If you do so and you have your python client bounded to the queue, everytime you publish testing/newmessage your python client will receive it.

    Hopefully this helps

  • stushep
    stushep Member Posts: 20

    Hi @Tamimi , think ive been watching your video's on youtube! lol

    I understand if i map the newmessage to the queue it will receive it all okay... I was attempting to use the functionality of the designer so that my queue was almost another end point... Maybe thats out of scope for the solution and a direct map to the queue is the only way possible?

    Thank you :smile:

  • himanshu
    himanshu Member, Employee Posts: 67 Solace Employee

    Hi @stushep,

    There are two concepts here: topics and queues. When you publish to a topic, you can have an application subscribe directly to the topic and receive that message. Here, we don't have any queues involved. And that means, message is not stored anywhere. If there is no subscriber to consume that message, it is lost.

    Now, let's say we would like the message to be stored if our subscriber is not online. In this case, we will use queues for persistence. A queue can have one or more topic subscriptions so it knows which messages should be enqueued in the queue. If you add testing/outmessage to the queue then any message that is published on that topic, will be in the queue. If you would like the messages which will be published on topic: testing/newmessage to be enqueued as well, then you must add this topic to the queue as well. A simpler way to add both topics to the queue is to use Solace wildcards and add this topic subscription: testing/>

    Not sure what you mean by this:

    I was attempting to use the functionality of the designer so that my queue was almost another end point...

    The idea is to ensure that correct topics are mapped to the queue.

    Hope this clarifies things.

  • stushep
    stushep Member Posts: 20

    Hi @Himanshu, yes that does help thank you... very much appreciated.

    With regards to my comment... the designer acts as a pipeline... i.e. Message comes in, goes through the app and out the other side (to another topic).

    so topic > app > topic

    I had thought subscribing to the second topic would be possible and picking up the actions as the data went through the app pipeline.

    Similar to the taxi app of: customer request > app > driver picks up customer request

    If i wanted to queue the customer requests, in my head i thought it would make sense to add the queue at the 'driver picks up customer request', that way a request is never lost and can be picked up whenever the driver say signal maybe.

    If i queue at the 'customer request', then to utilise the queue the 'driver picks up customer request' would actually need to subscribe to my queue (customer request) to ensure the data is not lost... therefore bypassing the app in designer totally - negating the need for the designer part of solace.

    Appears the design/functionality of Solace is different to how i would expect :smile: