All Projects → rabbitmq → Internals

rabbitmq / Internals

Licence: other
High level architecture overview

Projects that are alternatives of or similar to Internals

Adr Tools
Command-line tools for working with Architecture Decision Records
Stars: ✭ 3,073 (+118.41%)
Mutual labels:  documentation, architecture
Reference Architecture
TELUS Reference Architecture Documentation
Stars: ✭ 145 (-89.69%)
Mutual labels:  documentation, architecture
C4 Builder
This is a documentation builder. You feed it .md and .puml and it exports a site, pdf, or a markdown with navigation.
Stars: ✭ 164 (-88.34%)
Mutual labels:  documentation, architecture
Professional Programming
A collection of full-stack resources for programmers.
Stars: ✭ 15,936 (+1032.62%)
Mutual labels:  documentation, architecture
eshopzero
.Net Microservice Application
Stars: ✭ 27 (-98.08%)
Mutual labels:  rabbitmq, architecture
Architecture Center
Azure Architecture Center
Stars: ✭ 1,207 (-14.21%)
Mutual labels:  documentation, architecture
Rabbitmq Website
RabbitMQ website and documentation guides
Stars: ✭ 433 (-69.23%)
Mutual labels:  documentation, rabbitmq
Log4brains
✍️ Log and publish your architecture decisions (ADR)
Stars: ✭ 98 (-93.03%)
Mutual labels:  documentation, architecture
Software Design And Architecture Roadmap
🧱 The software design and architecture roadmap for any developer
Stars: ✭ 1,360 (-3.34%)
Mutual labels:  architecture
Springboot Quartz
quartz + springboot + RabbitMQ + H2(in-memory database) + dynamic task management web console.
Stars: ✭ 103 (-92.68%)
Mutual labels:  rabbitmq
Springboot Templates
springboot和dubbo、netty的集成,redis mongodb的nosql模板, kafka rocketmq rabbit的MQ模板, solr solrcloud elasticsearch查询引擎
Stars: ✭ 100 (-92.89%)
Mutual labels:  rabbitmq
Howtosnucse
고인물들은 무엇을 아는가
Stars: ✭ 100 (-92.89%)
Mutual labels:  documentation
Brighter
Command Dispatcher, Processor, and Distributed Task Queue
Stars: ✭ 1,393 (-1%)
Mutual labels:  rabbitmq
Quiz
Example real time quiz application with .NET Core, React, DDD, Event Sourcing, Docker and built-in infrastructure for CI/CD with k8s, jenkins and helm
Stars: ✭ 100 (-92.89%)
Mutual labels:  rabbitmq
Documentation
This is where we host content for the documentation portal
Stars: ✭ 105 (-92.54%)
Mutual labels:  documentation
Aspnetboilerplate
ASP.NET Boilerplate - Web Application Framework
Stars: ✭ 10,061 (+615.07%)
Mutual labels:  architecture
Easy Doc Bundle
Symfony application documentation generator
Stars: ✭ 99 (-92.96%)
Mutual labels:  documentation
Codebook
Cook rmarkdown codebooks from metadata on R data frames
Stars: ✭ 105 (-92.54%)
Mutual labels:  documentation
Restful Api Guidelines
A model set of guidelines for RESTful APIs and Events, created by Zalando
Stars: ✭ 1,397 (-0.71%)
Mutual labels:  documentation
Opencv Java Tutorials
Source for the OpenCV with Java tutorials
Stars: ✭ 102 (-92.75%)
Mutual labels:  documentation

RabbitMQ Internals

This project aims to explain how RabbitMQ works internally. The goal is to make it easier to contribute for newcomers to the project, and at the same time have a common repository of knowledge to be shared across the project contributors.

Purpose

Most interesting modules in RabbitMQ projects have documentation essays, sometimes quite extensive, at the top. The aim here is not to duplicate what's there, but to provide the highest-level overview as to the overall architecture.

Guides

In order to understand how RabbitMQ's internals work, it's better to try to follow the logic of how a message progresses through RabbitMQ as it is handled by the broker, otherwise, you would end up navigating through many guides without a clear context of what's going on, or without knowing what to read next. Therefore we have prepared the following guides to help you understand how RabbitMQ works:

Basic Publish Guide

Here we follow the life of a message since it's received from the network until it has been routed by the exchanges. We take a look at the various processing steps that happen to a message right until it is delivered to one or perhaps many queues.

Basic Publish

Deliver To Queues Guide

After the message has been routed, the broker needs to deliver that message to the respective queues. Here not only the message has to be sent to queues, but also mandatory messages and publisher confirms need to be taken into account. Also, the queue needs to try to deliver the message to prospective consumer, otherwise the message ends up queued.

Deliver To Queues

Queues and Message Store

Provides an overview of the Erlang processes that back queues and how they interact with the message store, message index and so on.

Queues and Message Store

Variable Queue Guide

Ultimately, messages end up queued at the backing queue. From here they can be retrieved, acked, purged, and so on. The most common implementation of the backing queue behaviour is the rabbit_variable_queue module, explained in the following guide:

Variable Queue

Mandatory Messages and Publisher Confirm Guides

As explained on the Deliver To Queues guide, a channel has to handle messages published as mandatory and also take care of publisher confirms. These processes are explained in the following guides:

Authentication and Authorization

As explained in the Basic Publish, there are some rules to see if a message can be accepted by the broker from a certain publisher. This is explained in the following guide:

Authorization and Authentication Backends

Internal Event Subsystem

In some cases components in a running node communicate via events. Some events are consumed by other nodes.

Internal Events

Management Plugin

An architectural overview of the v3.6.7+ version of the management plugin.

Metrics and Management Plugin

Maturity and Completeness

These guides are not complete, haven't been edited, and are work in progress in general.

So if you find yourself wanting more detail, check the code first!

License

(c) Pivotal Software Inc, 2015-2016

Released under the Creative Commons Attribution-ShareAlike 3.0 Unported license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].