Metadata-Version: 2.4
Name: moat-link-server
Version: 0.7.4
Summary: Storage and forwarding for messages between MoaT instances
Author-email: Matthias Urlichs <matthias@urlichs.de>
Project-URL: homepage, https://m-o-a-t.org
Project-URL: repository, https://github.com/M-o-a-T/moat
Keywords: MoaT
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Framework :: AsyncIO
Classifier: Framework :: Trio
Classifier: Framework :: AnyIO
Classifier: Development Status :: 4 - Beta
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: anyio~=4.2
Requires-Dist: asyncactor~=0.28.0
Requires-Dist: asyncclick~=8.3
Requires-Dist: attrs
Requires-Dist: ruyaml
Requires-Dist: simpleeval
Requires-Dist: moat-util~=0.64.0
Requires-Dist: moat-lib-rpc~=0.7.6
Requires-Dist: moat-lib-codec~=0.4.20
Requires-Dist: moat-link~=0.10.1
Requires-Dist: moat-lib-mqtt~=0.8.3
Requires-Dist: moat-lib-config~=0.2.2
Requires-Dist: moat-lib-broadcast~=0.1.4
Dynamic: license-file

# The MoaT-Link Server

% start main
% start synopsis

MoaT-Link requires a data server for message history, retrieval of
non-retained or possibly-non-existent messages, and communication between
clients.

% end synopsis

## Rationale

### Message history

MQTT remembers zero or one message per topic. Sometimes it's important to
recover old messages. The MoaT-Link server can record them.

### Message retrieval

MQTT is very good at giving you a topic's message as fast as possible, but
the only way to discover that a messages doesn't exist is to send another
message on a different topic. (Actually, this may not even work on a
multi-threaded server.)

That is not always a good idea. Thus you can just ask the server for it.

### Inter-Client communication

Every program that uses MoaT-Link should connect to a server and broadcast
its location and services. Thus any other MoaT-Link user can connect

### Data recovery

If your MQTT cluster crashes, restoring the status from a day-old backup
may not be the best strategy. The MoaT-Link server will reload the current
state from its log and restore the server's state to just before the crash.

### Passive Servers

Normally the MoaT-Link servers cooperate closely and continuously discuss
who of them is responsible for whatever needs doing. To keep a particular
server out of this discussion yet still have it exchange data with its
peers, start it with the ``-L`` (“local”) option; equivalently, set
“local_only” in the “server” section of the configuration.

% end main
