1"use strict";(self.webpackChunkrabbitmq_website=self.webpackChunkrabbitmq_website||[]).push([["10863"],{86620(e,i,t){t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>s,metadata:()=>a,toc:()=>h});var a=t(25072),r=t(74848),n=t(28453);let s={title:"This Month in RabbitMQ, November 2019 Recap",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:"Ready to learn more?",id:"ready-to-learn-more",level:2}];function b(e){let i={a:"a",h2:"h2",li:"li",p:"p",ul:"ul",...(0,n.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(i.p,{children:["Last month was a big one for the RabbitMQ community because RabbitMQ Summit happened in London! If you missed the event, or if you were at the event, but missed a session in the other track, ",(0,r.jsx)(i.a,{href:"https://www.youtube.com/watch?v=InqY3l69yCs&list=PLDUzG2yLXrU7gQAzZwMEkjkfTy0L5FsJx",children:"all the recordings"})," are now available. Also, be sure to check out our overview blog for an easy-to-digest ",(0,r.jsx)(i.a,{href:"/blog/2019/11/11/rabbitmq-3-8-release-
1overview",children:"summary of what\u2019s new in RabbitMQ 3.8"}),"."]}),"\n",(0,r.jsxs)(i.p,{children:["More new 3.8 features and lessons learned will be covered in ",(0,r.jsx)(i.a,{href:"https://content.pivotal.io/webinars/dec-12-understand-rabbitmq-for-developers-and-operators-webinar?utm_campaign=rabbitmq-devops-erlang_q419&utm_source=twitter&utm_medium=social",children:"an upcoming webinar"}),",\nby RabbitMQ core team member Gerhard Lazu. Tune in on December 12th!"]}),"\n",(0,r.jsx)(i.h2,{id:"project-updates",children:"Project Updates"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://groups.google.com/forum/#!msg/rabbitmq-users/9ztCUW7RaMU/JkQQXXOEBgAJ",children:"RabbitMQ 3.7.22"})," and ",(0,r.jsx)(i.a,{href:"https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.2",children:"3.8.2"})," were released, both include a patch for ",(0,r.jsx)(i.a,{href:"https://pivotal.io/security/cve-2019-11287",children:"CVE-2019-11287"})]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://github.com/rabbitmq/rabbitmq-server/tree/main/deps/rabbitmq_peer_discovery_k8s/tree/master/examples/minikube",children:"Kubernetes peer discovery example"})," was updated\nand is now a more complete. Speaking for Kubernetes, you can sign up to beta test Pivotal's ",(0,r.jsx)(i.a,{href:"https://pivotal.io/pivotal-rabbitmq-on-kubernetes",children:"RabbitMQ for Kubernetes"}),"!"]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://groups.google.com/d/msg/rabbitmq-users/aY4aOtUPneg/p9GDDsSDBgAJ",children:"Reactor RabbitMQ 1.4.0"})," is released as part of the ",(0,r.jsx)(i.a,{href:"https://projectreactor.io/docs",children:"Reactor Dysprosium-SR2 release train"}),". This release comes with a new feature, a usability improvement, and a dependency upgrade."]}),"\n",(0,r.jsxs)(i.li,{children:["There were several new Erlang releases, already available via our ",(0,r.jsx)(i.a,{href:"https://github.com/rabbitmq/erlang-debian-package/",children:"Debian"})," and ",(0,r.jsx)(i.a,{href:"https://github.com/rabbitmq/erlang-rpm",children:"RPM packages"})," on ",(0,r.jsx)(i.a,{href:"https://packagecloud.io/rabbitmq/erlang/",children:"PackageCloud"}),", ",(0,r.jsx)(i.a,{href:"https://github.com/rabbitmq/erlang-rpm/releases",children:"GitHub"}),", and other places. There's now an RPM package produced for CentOS/RHEL 8."]}),"\n",(0,r.jsxs)(i.li,{children:[(0,r.jsx)(i.a,{href:"https://groups.google.com/d/msg/rabbitmq-users/fOhiRVFnYJg/6BRKqhH4AwAJ",children:"Hop 3.5.0"})," is released with a new feature, a few bug fixes, and dependency upgrades."]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"community-writings-and-resources",children:"Community Writings and Resources"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:["4 Nov: Yuki Nishiwaki and Bhor Dinesh (@Dinesh_bhor) shared their slides from their OpenStack Shanghai Summit talk, ",(0,r.jsx)(i.a,{href:"https://speakerdeck.com/line_developers/how-we-used-rabbitmq-in-wrong-way-at-a-scale",children:"How we used RabbitMQ in Wrong Way at Scale"}),". Note that the talk covers RabbitMQ 3.6."]}),"\n",(0,r.jsxs)(i.li,{children:["5 Nov: Davide Guida (@DavideGuida82) published the third part in a series about microservices consuming message queues ",(0,r.jsx)(i.a,{href:"https://www.davideguida.com/consuming-message-queues-using-net-core-background-workers-part-3-the-code-finally/",children:"using .NET Core background workers and RabbitMQ"})]}),"\n",(0,r.jsxs)(i.li,{children:["5 Nov: Denis Germain (@zwindler) published ",(0,r.jsx)(i.a,{href:"https://blog.zwindler.fr/2019/11/05/recap-du-rabbitmq-summit-2019/",children:"a recap of the RabbitMQ Summit"})," (in French)"]}),"\n",(0,r.jsxs)(i.li,{children:["6 Nov: Ran Ribenzaft (@ranrib) wrote about ",(0,r.jsx)(i.a,{href:"https://epsagon.com/blog/distributed-tracing-through-rabbitmq-using-node-js-jaeger/",children:"distributed tracing through RabbitMQ using Node.js and Jaeger"})]}),"\n",(0,r.jsxs)(i.li,{children:["7 Nov: Kacper Mentel (@kacper_mentel) wrote about ",(0,r.jsx)(i.a,{href:"https://www.erlang-solutions.
1com/blog/how-to-debug-your-rabbitmq.html",children:"how to debug RabbitMQ based on a real-world example"})]}),"\n",(0,r.jsxs)(i.li,{children:["8 Nov: Lovisa Johansson (@lillajja) updated her post on ",(0,r.jsx)(i.a,{href:"https://www.cloudamqp.com/blog/2018-01-08-part2-rabbitmq-best-practice-for-high-performance.html",children:"best practices for high performance (low latency) RabbitMQ"})]}),"\n",(0,r.jsxs)(i.li,{children:["8 Nov: Hussein Nasser (@hnasr) published a ",(0,r.jsx)(i.a,{href:"https://youtu.be/O1PgqUqZKTA",children:"video tutorial introducing publish and subscribe approaches"})]}),"\n",(0,r.jsxs)(i.li,{children:["8 Nov: GoLab Conference published a video featuring Gabriele Vaccari explaining how to build ",(0,r.jsx)(i.a,{href:"https://youtu.be/HTM2UDzk7mY",children:"an event-driven notification system in Go and RabbitMQ"})]}),"\n",(0,r.jsxs)(i.li,{children:["9 Nov: Thiago Vivas (@Tva88s) wrote about ",(0,r.jsx)(i.a,{href:"https://www.c-sharpcorner.com/article/using-net-core-with-rabbitmq-for-async-operations/",children:"using .NET Core with RabbitMQ for async operations"})]}),"\n",(0,r.jsxs)(i.li,{children:["10 Nov: Alex Koutmos (@akoutmos) published the first in a series about ",(0,r.jsx)(i.a,{href:"https://akoutmos.com/post/broadway-rabbitmq-and-the-rise-of-elixir/",children:"Broadway, RabbitMQ, and the rise of Elixir"})]}),"\n",(0,r.jsxs)(i.li,{children:["10 Nov: Soumil Nitin Shah published the first in a series of video tutorials on ",(0,r.jsx)(i.a,{href:"https://www.youtube.com/watch?v=eSN0otKzYOE",children:"using RabbitMQ with Python"}),", starting with the basics"]}),"\n",(0,r.jsxs)(i.li,{children:["13 Nov: Dormain Drewitz (@DormainDrewitz) published ",(0,r.jsx)(i.a,{href:"https://content.pivotal.io/blog/rabbitmq-3-8-steals-the-show-at-rabbitmq-summit-2019-expert-panel",children:"a summary of the expert panel at RabbitMQ Summit 2019"})]}),"\n",(0,r.jsxs)(i.li,{children:["14 Nov: Szymon Mentel (@szymonmentel) wrote about ",(0,r.jsx)(i.a,{href:"https://szkolarabbita.pl/o-systemach-wysokiej-dostepnosci-na-przykladzie-rabbitmq/",children:"high availability in RabbitMQ"}),", covering the traditional mirrored queues method, but also noting the new quorum queues in 3.8 (in Polish)"]}),"\n",(0,r.jsxs)(i.li,{children:["19 Nov: John Tucker published ",(0,r.jsx)(i.a,{href:"https://codeburst.io/web-worker-rpc-with-rabbitmq-1c6d90939f7",children:"an article on Web-Worker RPC with RabbitMQ"})]}),"\n",(0,r.jsxs)(i.li,{children:["20 Nov: Bahadir Tasdemir of Trendyol wrote about ",(0,r.jsx)(i.a,{href:"https://medium.com/trendyol-tech/event-driven-microservice-architecture-91f80ceaa21e",children:"event-driven microservices architecture with RabbitMQ"})]}),"\n",(0,r.jsxs)(i.li,{children:["Nov 20: Cagri Aslanbas wrote about a dockerized ",(0,r.jsx)(i.a,{href:"https://medium.com/@cagrias/a-dockerized-pub-sub-message-queue-implementation-in-django-by-using-rabbitmq-and-celery-20d349dc60b6",children:"messaging implementation in Django with RabbitMQ and Celery"})]}),"\n",(0,r.jsxs)(i.li,{children:["21 Nov: Dormain Drewitz (@DormainDrewitz) published a ",(0,r.jsx)(i.a,{href:"https://content.pivotal.io/podcasts/modernizing-from-mainframe-to-net-core-at-travelers-insurance",children:"podcast interview"})," with Viraj Naik of Travelers Insurance and Rohit Kelapure from Pivotal. Their dicussion about modernizing a workload off of mainframe to .NET Core included how RabbitMQ was used."]}),"\n",(0,r.jsxs)(i.li,{children:["22 Nov: Shivam Aggarwal (@shivama205) published ",(0,r.jsx)(i.a,{href:"https://medium.com/@shivama205/rabbbitmq-quorum-queues-829cec655792",children:"an overview of the new Quorum Queues feature in RabbitMQ 3.8"})]}),"\n",(0,r.jsxs)(i.li,{children:["24 Nov: The techno journals (@JournalsTechno) wrote about ",(0,r.jsx)(i.a,{href:"https://www.thetechnojournals.com/2019/11/installing-rabbit-mq.html",children:"installing RabbitMQ"})]}),"\n",(0,r.jsxs)(i.li,{children:["29 Nov: David Ireland published a ",(0,r.jsx)(i.a,{href:"https://tech.labs.oliverwyman.com/blog/2019/11/29/rabbitmq-summit-2019-report/",children:"recap of RabbitMQ Summit"})]}),"\n",(0,r.jsxs)(i.li,{children:["30 Nov: Mike M\xf8ller Nielsen (@MikeMoelNielsen) published a ",(0,r.jsx)(i.a,{href:"https://youtu.be/ftIKXFLdYZQ",children:"video to demonstrate RabbitMQ Firehose tracing"})]}),"\n"]}),"\n",(0,r.jsx)(i.h2,{id:"ready-to-learn-more",children:"Ready to learn more?"}),"\n",(0,r.jsx)(i.p,{children:"Check out these upcoming opportunities to learn more about RabbitMQ"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:["12 December 2019, online webinar: ",(0,r.jsx)(i.a,{href:"https://content.pivotal.io/webinars/dec-12-understand-rabbitmq-for-developers-and-operators-webinar?utm_campaign=this-month-understanding-rabbitmq&utm_source=rabbitmq&utm_medium=website",children:"Understanding RabbitMQ: For Developers and Operators"})]}),"\n",(0,r.jsxs)(i.li,{children:["16 December 2019, Lyon, France: ",(0,r.jsx)(i.a,{href:"https://www.meetup.com/fr-FR/lyonjug/events/266379924",children:"JUG Meetup"})]}),"\n",(0,r.jsxs)(i.li,{children:["On-demand, online at LearnFly: ",(0,r.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,r.jsxs)(i.li,{children:["On-demand, online at Udemy: ",(0,r.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,r.jsxs)(i.li,{children:["Online: $40 buys you early access to Marco Behler\u2019s course, ",(0,r.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",(0,r.jsxs)(i.li,{children:["Online at Pluralsight: ",(0,r.jsx)(i.a,{href:"https://www.pluralsight.com/courses/rabbitmq-by-example",children:"RabbitMQ by Example"})," gets good reviews"]}),"\n"]})]})}function c(e={}){let{wrapper:i}={...(0,n.R)(),...e.components};return i?(0,r.jsx)(i,{...e,children:(0,r.jsx)(b,{...e})}):b(e)}},28453(e,i,t){t.d(i,{R:()=>s,x:()=>o});var a=t(96540);let r={},n=a.createContext(r);function s(e){let i=a.useContext(n);return a.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(r):e.components||r:s(e.components),a.createElement(n.Provider,{value:i},e.children)}},25072(e){e.exports=JSON.parse('{"permalink":"/blog/2019/12/07/this-month-in-rabbitmq-november-2019-recap","editUrl":"https://github.com/rabbitmq/rabbitmq-website/tree/main/blog/2019-12-07-this-month-in-rabbitmq-november-2019-recap/index.md","source":"@site/blog/2019-12-07-this-month-in-rabbitmq-november-2019-recap/index.md","title":"This Month in RabbitMQ, November 2019 Recap","description":"Last month was a big one for the RabbitMQ community because RabbitMQ Summit happened in London! If you missed the event, or if you were at the event, but missed a session in the other track, all the recordings are now available. Also, be sure to check out our overview blog for an easy-to-digest summary of what\u2019s new in RabbitMQ 3.8.","date":"2019-12-07T00:00:00.000Z","tags":[{"inline":true,"label":"Updates","permalink":"/blog/tags/updates"}],"readingTime":5.4,"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, November 2019 Recap","tags":["Updates"],"authors":["mklishin"]},"unlisted":false,"prevItem":{"title":"LAIKA Gets Creative with RabbitMQ As the Animation Company\'s IT Nervous System","permalink":"/blog/2019/12/16/laika-gets-creative-with-rabbitmq-as-the-animation-companys-it-nervous-system"},"nextItem":{"title":"This Month in RabbitMQ: September & October 2019","permalink":"/blog/2019/11/13/this-month-in-rabbitmq-november-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.