Skip to content

Commit ef7a7f3

Browse files
Essay doco for rabbit_runtime_parameters
1 parent 87ff212 commit ef7a7f3

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/rabbit_runtime_parameters.erl

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,37 @@
1616

1717
-module(rabbit_runtime_parameters).
1818

19+
%% Runtime parameters are bits of configuration that are
20+
%% set, as the name implies, at runtime and not in the config file.
21+
%%
22+
%% The benefits of storing some bits of configuration at runtime vary:
23+
%%
24+
%% * Some parameters are vhost-specific
25+
%% * Others are specific to individual nodes
26+
%% * ...or even queues, exchanges, etc
27+
%%
28+
%% The most obvious use case for runtime parameters is policies but
29+
%% there are others:
30+
%%
31+
%% * Plugin-specific parameters that only make sense at runtime,
32+
%% e.g. Federation and Shovel link settings
33+
%% * Exchange and queue decorators
34+
%%
35+
%% Parameters are grouped by components, e.g. <<"policy">> or <<"shovel">>.
36+
%% Components are mapped to modules that perform validation.
37+
%% Runtime parameter values are then looked up by the modules that
38+
%% need to use them.
39+
%%
40+
%% Parameters are stored in Mnesia and can be global. Their changes
41+
%% are broadcasted over rabbit_event.
42+
%%
43+
%% See also:
44+
%%
45+
%% * rabbit_policies
46+
%% * rabbit_policy
47+
%% * rabbit_registry
48+
%% * rabbit_event
49+
1950
-include("rabbit.hrl").
2051

2152
-export([parse_set/5, set/5, set_any/5, clear/3, clear_any/3, list/0, list/1,

0 commit comments

Comments
 (0)