<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello,<br>
    <br>
    thanks for this contribution!<br>
    <br>
    Do you have a link to the module source code or can you send it
    attached? We need to review a bit and check if everything is in
    place (e.g., license, documentation).<br>
    <br>
    For a better clarification, do the json payloads flowing via AMQP
    have a structure specific for kazoo? I mean the object structure,
    how are the fields name set, from the name of the columns? Is there
    a wrapper to specify the command (e.g., insert, delete, select)? Or
    maybe you can provide an example of such object...<br>
    <br>
    Kazoo is an open source application, therefore the new module has no
    barrier in getting inside kamailio repository. My questions were
    related more to see if worth considering a new name.<br>
    <br>
    To get it in our git repository, we expect that you or someone else
    from 2600hz is willing to maintain it for at least one year. You
    will get write access over ssh to git repository to be able to push
    the new module and commit to it in the future. I will write a
    separate email directly to you with the required details for access.<br>
    <br>
    Cheers,<br>
    Daniel<br>
    <br>
    <div class="moz-cite-prefix">On 09/09/14 12:22, Luis Azedo wrote:<br>
    </div>
    <blockquote
cite="mid:6FFC6465A51B5B4C80DD111E16112FD1BC20FF@mbx022-w1-ca-4.exch022.domain.local"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <style type="text/css" id="owaParaStyle"></style>
      <div style="direction: ltr;font-family: Tahoma;color:
        #000000;font-size: 10pt;">
        <div>Hello Awesome Kamailio Community,</div>
        <div>We are writing on behalf of 2600hz, where we have been
          using Kamailio for some time now and are very pleased with our
          results! So, seems time to commit something back, dontchya
          think?</div>
        <div><br>
        </div>
        <div>We would like to present to you a new module, to hopefully
          be included in master.   We call it db_kazoo (although a new
          name is fine too).</div>
        <div><br>
        </div>
        <div>db_kazoo is a general purpose AMQP connector (connects to
          our rabbitmq-server). It exposes publish/consume capabilities
          into Kamailio. Why is this amazing, you ask? Well even if you
          didn’t ask, we will explain…</div>
        <div><br>
        </div>
        <div>From a high-level, the purpose of the module might be for
          things like:</div>
        <div>- Integrate to an AMQP application to make real-time
          routing decisions (instead of using, say, a SQL database)</div>
        <div>- Provide a real-time integration into your program,
          instead of your database, so you can overlay additional logic
          in your preferred language while also utilizing a message bus</div>
        <div>- Utilize messaging to have a distributed messaging layer,
          such that machines processing requests/responses/events can go
          up/down or share the workload and your Kamailio node will
          still be happy</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>With this module, someone can:</div>
        <div>1 - publish json payloads to rabbitmq</div>
        <div>2 - publish json payloads to rabbitmq and wait for
          correlated response message</div>
        <div>3 - subscribe to an exchange with a routing key</div>
        <div><br>
        </div>
        <div>The module works with a main forked process that does the
          communication with rabbitmq for issuing publishes, waiting for
          replies and consuming messages. When it consumes a message it
          defers the process to a worker process so that it doesn't
          block this main process.</div>
        <div><br>
        </div>
        <div>The worker process issues an event-route where we can act
          on the received payload. The name of the event-route is
          composed by values extracted from the payload.</div>
        <div><br>
        </div>
        <div>Consumed messages have the option of being acknowledge in
          two ways:</div>
        <div>1 - immediately when received </div>
        <div>2 - after processing by the worker</div>
        <div><br>
        </div>
        <div>One unique feature of our implementation revolves around
          failover of the message bus itself. In our design, the module
          supports multiple RabbitMQ servers and will fallback from one
          to the next in a list of RabbitMQ servers if the connection
          fails to the current connected server. When using acknowledge
          in db_kazoo with clustering in RabbitMQ, we have simulated and
          experienced full reconnects while in the middle of processing
          pending messages. In this way, when we get disconnected from
          one server we proved that, even at high speeds, we are able to
          connect to the next in the list and continue interacting with
          our application.</div>
        <div><br>
        </div>
        <div>We have run a variety of sipp load tests on this module and
          believe it is ready for prime time. We monitored memory,
          response accuracy and overall stability and it seemed OK. But
          we would, of course, love for others to help us find what we
          have missed, or contribute more features, or overall just use
          the work we slaved over for so many hours. Or just make
          comments and suggestions!</div>
        <div><br>
        </div>
        <div>If nothing else, we hope we’ve provided something useful to
          the Kamailio community, as you all have provided useful items
          to us.</div>
        <div><br>
        </div>
        <div>Thanks to everyone for all the work on Kamailio and related
          products.</div>
        <div><br>
        </div>
        <div>Look forward to hearing from you all.</div>
        <div><br>
        </div>
        <div>This is our first formal / large contribution to Kamailio
          so if we’ve done something wrong process, code or otherwise
          please let us know!</div>
        <div><br>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
sr-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:sr-dev@lists.sip-router.org">sr-dev@lists.sip-router.org</a>
<a class="moz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a>
Next Kamailio Advanced Trainings 2014 - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a>
Sep 22-25, Berlin, Germany</pre>
  </body>
</html>