Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Discussion options

I've seen this so many times trying to convince you of it
So i Caluded this
And this what i got which really confirms everything i have seen
`❯ so if i understood you correctly: it is possible to get heartbeat prioritized in FIX but since quickfix is a less than capable library we cannot do it in
quickfix

⏺ Yes, exactly.

FIX Protocol itself allows heartbeat prioritization - it's an implementation detail, not a protocol constraint.

QuickFIX's architecture prevents prioritization because:

  1. Single messageOut channel for ALL messages (application + heartbeat)
  2. Single-threaded event loop processes everything sequentially
  3. When heartbeat needs to be sent, it goes through the same blocking sendBytes() that application messages use

To implement prioritization, you'd need to modify QuickFIX to:

  • Use separate channels (high-priority for heartbeats, normal for application messages)
  • Have the consumer goroutine process the heartbeat channel first
  • Or at minimum, ensure heartbeat sends are always non-blocking with a separate buffer

The current QuickFIX architecture treats heartbeats the same as any other message, which is why they get blocked during high traffic.`

You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
1 participant
Morty Proxy This is a proxified and sanitized view of the page, visit original site.