1"use strict";(self.webpackChunkrabbitmq_website=self.webpackChunkrabbitmq_website||[]).push([["17227"],{48533(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>n,toc:()=>h});var n=t(84906),a=t(74848),s=t(28453);let r={title:"This Month in RabbitMQ \u2014 September 2019",tags:["Updates"],authors:["mklishin"]},o,l={authorsImageUrls:[void 0]},h=[{value:"Project updates",id:"project-updates",level:2},{value:"Community writings and resources",id:"community-writings-and-resources",level:2},{value:"Events and Training",id:"events-and-training",level:2}];function b(e){let i={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(i.p,{children:["Welcome back for another edition of This Month in RabbitMQ! Exciting news is that the ",(0,a.jsx)(i.a,{href:"https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0-rc.1",children:"first release candidate for RabbitMQ 3.8"})," is now available!"]}),"\n",(0,a.jsxs)(i.p,{children:["Be sure to catch up on what is new in 3.8 by reading the release notes and watching this ",(0,a.jsx)(i.a,{href:"https://content.pivotal.io/webinars/may-23-what-s-new-in-rabbitmq-3-8-webinar?utm_campaign=rabbitmq-blog-3.8-webinar-q319&utm_source=rabbitmq&utm_medium=website",children:"webinar replay"}),"."]}),"\n",(0,a.jsxs)(i.p,{children:["We are starting to countdown until ",(0,a.jsx)(i.a,{href:"https://rabbitmqsummit.com/",children:"RabbitMQ Summit"})," in London on November 4.\nThe RabbitMQ team is looking forward to sharing updates on the project,\nbut we\u2019re also looking forward to hearing from end-users like Bloomberg, WeWork, Softonic, and Zalando.\nBe sure to register and snag a spot in one of the training add-on courses."]}),"\n",(0,a.jsx)(i.h2,{id:"project-updates",children:"Project updates"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsxs)(i.li,{children:[(0,a.jsx)(i.a,{href:"https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0-rc.1",children:"First release candidate for RabbitMQ 3.8"})," is available for community testing"]}),"\n",(0,a.jsxs)(i.li,{children:[(0,a.jsx)(i.a,{href:"/docs/prometheus",children:"Next generation Prometheus support"})," has been thoroughly reviewed with the help of ",(0,a.jsx)(i.a,{href:"https://github.com/brian-brazil",children:"Brian Brazil"})]}),"\n",(0,a.jsxs)(i.li,{children:["Erlang 20.3 support is ",(0,a.jsx)(i.a,{href:"https://groups.google.com/forum/#!searchin/rabbitmq-users/ANN%7Csort:date/rabbitmq-users/9tc_OE1eMPk/ly1NEISwBwAJ",children:"being discontinued"})," soon. Please ",(0,a.jsx)(i.a,{href:"/docs/which-erlang",children:"upgrade to a supported version"})]}),"\n",(0,a.jsxs)(i.li,{children:["New Spring Integration and Spring AMQP ",(0,a.jsx)(i.a,{href:"https://spring.io/blog/2019/08/08/new-spring-integration-amqp-kafka-maintenance-and-milestone-releases",children:"releases are available"})]}),"\n",(0,a.jsxs)(i.li,{children:[(0,a.jsx)(i.a,{href:"https://github.com/php-amqplib/php-amqplib/releases/tag/v2.10.0",children:"php-amqplib 2.10.0"})," is released"]}),"\n",(0,a.jsxs)(i.li,{children:[(0,a.jsx)(i.a,{href:"https://groups.google.com/d/msg/rabbitmq-users/XFbLrNYnF78/UXBKPOVBAQAJ",children:"JMS client 1.13.0"})," is released with a new feature (support for publisher confirms), bug fixes, and dependency upgrades"]}),"\n",(0,a.jsxs)(i.li,{children:[(0,a.jsx)(i.a,{href:"https://github.com/rabbitmq/ra/",children:"Ra"}),", our Raft implementation library, has gone 1.0"]}),"\n"]}),"\n",(0,a.jsx)(i.h2,{id:"community-writings-and-resources",children:"Community writings and resources"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsxs)(i.li,{children:["August 1: Aidan Ruff published on ",(0,a.jsx)(i.a,{href:"https://tech.scargill.net/rabbitmq-mqtt-broker/",children:"RabbitMQ as an MQTT broker"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 4: Antonio Musarra wrote about ",(0,a.jsx)(i.a,{href:"https://www.dontesta.it/2019/08/04/raspberry-pi-sense-hat-come-pubblicare-dati-cloudamqp-mqtt/",children:"using CloudAMQP RabbitMQ service for MQTT"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 5: TekLoon followed up on a post from July, this time about ",(0,a.jsx)(i.a,{href:"https://medium.com/better-programming/how-i-deploy-microservice-to-heroku-with-rabbitmq-876499c797cc",children:"how they deploy a microservice to Heroku with RabbitMQ"})]}
1),"\n",(0,a.jsxs)(i.li,{children:["August 5: J\xfalio Falbo (@juliofalbo77) from TradeShift wrote about ",(0,a.jsx)(i.a,{href:"https://medium.com/tradeshift-engineering/spring-rabbitmq-tuning-f94723598312",children:"an open source library that helps integrate Spring Boot with RabbitMQ"}),", as an alternative to Spring AMQP"]}),"\n",(0,a.jsxs)(i.li,{children:["August 9: Erlang Solutions published a video from at a Meetup in Krakow where Szymon Mentel (@szymonmentel) presents ",(0,a.jsx)(i.a,{href:"https://www.youtube.com/watch?v=MFH-GDYdxwQ&utm_source=dlvr.it&utm_medium=twitter",children:"examples of how to achieve high availability in RabbitMQ"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 9: The Italian Agile Movement published a video of Gabriele Santomaggio (@GSantomaggio) speaking (in Italian) on ",(0,a.jsx)(i.a,{href:"https://vimeo.com/351826121",children:"microservices integration and how RabbitMQ compares"})," to other open source messaging technologies"]}),"\n",(0,a.jsxs)(i.li,{children:["August 12: Brant Burnett (@btburnett3) wrote about ",(0,a.jsx)(i.a,{href:"https://btburnett.com/kubernetes/microservices/continuous%20delivery/2019/08/12/shawarma.html",children:"blue/green deployments in the context of messaging on Kubernetes"})," using Shawarma"]}),"\n",(0,a.jsxs)(i.li,{children:["August 12: Alexander Ma published the ",(0,a.jsx)(i.a,{href:"https://medium.com/@alexma6614/rabbitmq-flask-go-tutorial-pt-2-7161feb654c6",children:"second part of an introduction to microservices"})," using Python, Go, RabbitMQ, and Redis"]}),"\n",(0,a.jsxs)(i.li,{children:["August 12: Wojciech Suwa?a published part 6 in a series on building microservices on .NET Core. This part was focused on ",(0,a.jsx)(i.a,{href:"https://altkomsoftware.pl/en/blog/building-microservices-6/",children:"real-time server-client communication with SignalR and RabbitMQ"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 13: Radu Vunvulea (@RaduVunvulea) wrote about ",(0,a.jsx)(i.a,{href:"http://vunvulearadu.blogspot.com/2019/08/mqtt-protocol-inside-azure-rabbitmq-on.html",children:"using MQTT protocol inside Azure with RabbitMQ on top of AKS"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 16: Angga Kusumandaru (@ndaruoke) wrote about ",(0,a.jsx)(i.a,{href:"https://medium.com/@kusumandaru/publish-subscribe-on-ruby-on-rails-6aa6893ef819",children:"using RabbitMQ, Bunny and Sneakers"})," to set up a publish and subscribe architecture in Ruby on Rails"]}),"\n",(0,a.jsxs)(i.li,{children:["August 17: Marius Jaraminas published about ",(0,a.jsx)(i.a,{href:"https://codespacelab.com/index.php/2019/08/17/what-is-rabbitmq-and-why-its-needed/",children:"What is RabbitMQ and Why it\u2019s Needed?"}),". He also published about how to ",(0,a.jsx)(i.a,{href:"https://codespacelab.com/index.php/2019/08/17/rabbitmq-single-point-of-failure/",children:"avoid having a single messaging point of failure"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 18: Luke Mwila (@LuKE9ine) wrote ",(0,a.jsx)(i.a,{href:"https://medium.com/swlh/a-quick-guide-to-understanding-rabbitmq-amqp-ba25fdfe421d",children:"A Quick Guide To Understanding RabbitMQ & AMQP 0-9-1"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 19: Marius Jaraminas at it again with ",(0,a.jsx)(i.a,{href:"https://codespacelab.com/index.php/2019/08/19/rabbitmq-and-spring-cloud-stream/",children:"RabbitMQ and Spring Cloud Stream"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 21: Quintessence Anx (@QuintessenceAnx) published the first part of a blog series on ",(0,a.jsx)(i.a,{href:"https://logz.io/blog/monitoring-rabbitmq-with-elk-and-logz-io-part-1/",children:"monitoring RabbitMQ with the ELK Stack and Logz.io"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 22: Rocky Lhotka (@RockyLhotka) wrote about his recent work on a data portal channel ",(0,a.jsx)(i.a,{href:"http://www.lhotka.net/weblog/RabbitMQDataPortalChannelInCSLA5.aspx",children:"based on using RabbitMQ as the underlying transport"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 22: Olushola Karokatose (@Olushola_k) published about ",(0,a.jsx)(i.a,{href:"https://dev.to/olushola_k/working-with-rabbitmq-in-golang-1kmj",children:"getting started with Golang by building a project with RabbitMQ"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 23: Marlon Mon\xe7ores wrote about ",(0,a.jsx)(i.a,{href:"https://medium.com/m4u-tech/mantendo-a-velocidade-de-entrega-mesmo-com-mensagens-ruins-spring-cloud-rabbitmq-383dbd92efae",children:"using Spring Cloud Stream and RabbitMQ"})," (in Portuguese)"]}),"\n",(0,a.jsxs)(i.li,{children:["August 26: Surat Pyari (@suratpyaridb) published another part in her series on microservices with Sinatra, this time walking through ",(0,a.jsx)(i.a,{href:"https://blazarblogs.wordpress.com/2019/08/26/rabbitmq-in-sinatra-an-addition-for-micro-service/",children:"how to queue requests with RabbitMQ"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 26: Syed Sirajul Islam Anik (@sirajul_anik) wrote a ",(0,a.jsx)(i.a,{href:"https://medium.com/@sirajul.anik/easy-peasy-rabbitmq-squeezy-820b1c632465",children:"thorough introduction to RabbitMQ"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 28: Marius Jaraminas publishes a FOURTH blog on ",(0,a.jsx)(i.a,{href:"https://codespacelab.com/index.php/2019/08/28/rabbitmq-scalability-testing/",children:"RabbitMQ Scalability Testing"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 29: Nicolas Judalet (@JudaletNicolas) wrote an ",(0,a.jsx)(i.a,{href:"https://blog.theodo.com/2019/08/event-driven-architectures-rabbitmq/",children:"Introduction to Event-driven Architectures With RabbitMQ"})]}),"\n",(0,a.jsxs)(i.li,{children:["August 30: Mike M\xf8ller Nielsen (@MikeMoelNielsen) published a ",(0,a.jsx)(i.a,{href:"https://www.youtube.com/watch?v=lqrCNhiTgTo&feature=youtu.be",children:"video explaining the fan-out, topic, and direct exchange types"})," in RabbitMQ"]}),"\n"]}),"\n",(0,a.jsx)(i.h2,{id:"events-and-training",children:"Events and Training"}),"\n",(0,a.jsx)(i.p,{children:"Ready to learn more? Check out these upcoming opportunities to learn more about RabbitMQ"}),"\n",(0,a.jsxs)(i.ul,{children:["\n",(0,a.jsxs)(i.li,{children:["12 September 2019, Bern: DevOps Meetup on Observability and DevOps: ",(0,a.jsx)(i.a,{href:"https://www.meetup.com/DevOps-Bern/events/262813160/",children:"Value Stream Mapping with RabbitMQ"})]}),"\n",(0,a.jsxs)(i.li,{children:["30 September 2019, NYC: ",(0,a.jsx)(i.a,{href:"https://codesync.global/conferences/code-beam-lite-nyc/training/",children:"RabbitMQ Express"})]}),"\n",(0,a.jsxs)(i.li,{children:["4 November 2019, London, UK: ",(0,a.jsx)(i.a,{href:"https://rabbitmqsummit.com/",children:"RabbitMQ Summit"})]}),"\n",(0,a.jsxs)(i.li,{children:["5-6 November 2019, London, UK: Various trainings available as part of the ",(0,a.jsx)(i.a,{href:"https://rabbitmqsummit.com/#training",children:"RabbitMQ Summit"})]}),"\n",(0,a.jsxs)(i.li,{children:["6-8 November 2019, London, UK: CodeMesh LDN features a ",(0,a.jsx)(i.a,{href:"https://codesync.global/conferences/code-mesh-ldn/",children:"talk from Ayande Dube"})," (@dube_aya) on messaging wars: RabbitMQ, Kafka or ZeroMQ?"]}),"\n",(0,a.jsxs)(i.li,{children:["On-demand, online at LearnFly: ",(0,a.jsx)(i.a,{href:"https://www.learnfly.com/learn-rabbitmq-asynchronous-messaging-with-java-and-spring",children:"Learn RabbitMQ Asynchronous Messaging with Java and Spring"})]}),"\n",(0,a.jsxs)(i.li,{children:["On-demand, online at Udemy: ",(0,a.jsx)(i.a,{href:"https://www.udemy.com/rabbitmq-messaging-with-java-spring-boot-and-spring-mvc/",children:"RabbitMQ : Messaging with Java, Spring Boot And Spring MVC"})]}),"\n",(0,a.jsxs)(i.li,{children:["Online: $40 buys you early access to Marco Behler\u2019s course, ",(0,a.jsx)(i.a,{href:"https://www.marcobehler.com/courses/30-building-a-real-world-java-and-rabbitmq-messaging-amqp-application",children:"Building a real-world Java and RabbitMQ messaging (AMQP) application"})]}),"\n"]})]})}function u(e={}){let{wrapper:i}={...(0,s.R)(),...e.components};return i?(0,a.jsx)(i,{...e,children:(0,a.jsx)(b,{...e})}):b(e)}},28453(e,i,t){t.d(i,{R:()=>r,x:()=>o});var n=t(96540);let a={},s=n.createContext(a);function r(e){let i=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(s.Provider,{value:i},e.children)}},84906(e){e.exports=JSON.parse('{"permalink":"/blog/2019/09/09/this-month-in-rabbitmq-september-2019","editUrl":"https://github.com/rabbitmq/rabbitmq-website/tree/main/blog/2019-09-09-this-month-in-rabbitmq-september-2019/index.md","source":"@site/blog/2019-09-09-this-month-in-rabbitmq-september-2019/index.md","title":"This Month in RabbitMQ \u2014 September 2019","description":"Welcome back for another edition of This Month in RabbitMQ! Exciting news is that the first release candidate for RabbitMQ 3.8 is now available!","date":"2019-09-09T00:00:00.000Z","tags":[{"inline":true,"label":"Updates","permalink":"/blog/tags/updates"}],"readingTime":5.86,"hasTruncateMarker":true,"authors":[{"name":"Michael Klishin","url":"https://github.com/michaelklishin","socials":{"github":"https://github.com/michaelklishin","linkedin":"https://www.linkedin.com/in/michaelklishin/","bluesky":"https://bsky.app/profile/michaelklishin.bsky.social"},"imageURL":"https://github.com/michaelklishin.png","key":"mklishin","page":null}],"frontMatter":{"title":"This Month in RabbitMQ \u2014 September 2019","tags":["Updates"],"authors":["mklishin"]},"unlisted":false,"prevItem":{"title":"RabbitMQ 3.8 Release Overview","permalink":"/blog/2019/11/11/rabbitmq-3-8-release-
1overview"},"nextItem":{"title":"This Month in RabbitMQ \u2014 August 2019","permalink":"/blog/2019/08/12/this-month-in-rabbitmq-august-2019"}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.