The Message Monitor GraphQL API extension was developed to solve the problem of batch external message processing. Typically, to process large amounts of messages (which includes sending them, receiving their status, and retrying in case of failure), one would need to create a separate message sending request for each message and perform multiple queries to check the status of each message.
The Message Monitor API optimizes the process by taking advantage of the fact that all users walk along the same shards. Even when a client works with just one contract and performs many external requests, it has to perform block walking along the same blocks for each message. Message Monitor caches the transactions of the last block to provide all users with shard block walking on the backend side.
Also it ensures a transaction error trace is received on the backend if the transaction was not executed onchain within the specified timeout.
Message Monitor GraphQL API extension can be used in 2 ways:
subscribe for the statuses of a batch of messages via websocket
query the status of a batch of messages with 1 query