Git Product home page Git Product logo

Comments (7)

berkid89 avatar berkid89 commented on June 11, 2024 1

Yes @Expecho , that's exactly what I thought of too, If you can channel the messages into a normal Service Bus Queue/Topic, then it will work (As soon as Message Silo also supports Event Grid)

from messagesilo.

berkid89 avatar berkid89 commented on June 11, 2024

Hi @Expecho!

Thanks for your interest!

There is no roadmap, as I develop the tool in my free time, but the plan was, to include what the community wanted.

I still have to look into how well Azure Event Grid fits into the picture, but it could be a good next candidate!

If I make any progress with this, I will definitely let you know!

from messagesilo.

berkid89 avatar berkid89 commented on June 11, 2024

Hello @Expecho !

I investigated the possibilities here, and publishing messages to the Azure Event Grid Topics and Domains from Message Silo not a big deal because these are MQTT queues.

The problem is: Event Grid has only one option for dead-lettering, as you mentioned the Storage Account (wich not a dead-letter-queue), and unfortunetly Message Silo is designed for consume messages from queues.

So I think, in the short term, its not an option to fully support this scenario.
But publishing to Event Grid Topics/Domains (as a Target) could be implemented.

from messagesilo.

Expecho avatar Expecho commented on June 11, 2024

Hi @berkid89 thanks for the response. I could vision a scenario in which a blob triggered function puts the dead letter blobs as messages in a queue so Message Silo can pick it up from there to republish the message. In that case Message Silo being able to publish to Event Grid Topics/Domains (as a Target) would be a great addition.

from messagesilo.

berkid89 avatar berkid89 commented on June 11, 2024

Hello @Expecho!

I introducted the Event Gird Target type:
https://github.com/MessageSilo/MessageSilo/wiki/02.-Entities-&-Concepts#target

So, now you are able to use Message Silo in your scenario, if you can copy the Storage file contents to a Queue. I tested with these kind of example deadletter messages:

[{
  "id": "13453454359",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "2.0"
}]

In your case the Message Silo configuration look something like this with an Inline enricher:

apiVersion: v1
kind: Connection
name: myQueue
type: Azure_Queue
queueName: example_queue
connectionString: "Endpoint=sb://..."
receiveMode: ReceiveAndDelete
enrichers:
 - myEnricher
target: myTarget
---
apiVersion: v1
kind: Enricher
name: myEnricher
type: Inline
function: "(x) => {
    return x.map(p => {
      if (p.data.make === 'Ducati') {
        return {
          ...p,
          data: {
            ...p.data,
            model: 'Forza'
          }
        };
      }
      return p;
    });
  }"
---
apiVersion: v1
kind: Target
name: myTarget
type: Azure_EventGrid
endpoint: "https://xy.westeurope-1.eventgrid.azure.net/api/events?api-version=2018-01-01"
accessKey: "XGvb..."

2 hints:

  • This configuration deletes the messages automatically from the Queue, so make sure you have the massages in the Storage Account as well, if something goes wrong and need to resend them again.

  • If you automated the dead-letter channeling from the Storage Account to the Queue, and the fixed messages still landing in the deadletter blob, it can cause an endless loop of messages, so if it happens stop your Message Silo configurations, with a siloctl delete, or trigger the "dead-letter file -> queue" process manually or schedule it (daily for example) to avoid this case.

I hope it helps :)

from messagesilo.

berkid89 avatar berkid89 commented on June 11, 2024

I'm closing because the Event Grid integration is basically done.
If you have comments or suggestions, please open a new ticket.

from messagesilo.

Expecho avatar Expecho commented on June 11, 2024

@berkid89 great, we are getting things ready to put it to work. I will let you know if anything comes up. Thanks for the great work!

from messagesilo.

Related Issues (1)

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.