This feature was required for an integration we are currently working on with a very large exchange. At this exchange in their test environment our application is limited to just 10 msg/sec/session, while in production this limit increases to 1000 msg/sec/session.
In either case we needed a way to ensure we never burst above this limit as this leads to temporary disconnection (which we did see happening with the 10 msg/sec/session limit in the UAT environment due to the way QuickFIX batches outgoing messages), so this PR adds a rate limiter to the session configuration such that we can enforce per session outgoing rate limits.
If no limit is specified for a session it defaults to a limit value of 0, meaning that no limiting is enforced for backwards compatibility with existing deployments.