A: It can depend on the environment; our test shows that 8Mb is enough. So the best way is to do a few tests with different values, then to choose.
A: When a gap is detected DepthListener::onDepthReset is fired to notify that market data is not valid.
A: It depends on the usage of the handler. If startRecoveryOnPacketGap is true, "Pessimistic approach" is used. Please see Section 7.1 "Detecting duplicates and gaps by means of the packet header" of the EMDI/RDI spec for details.
The packet header allows receiving applications to identify identical packets between Service A and Service B. This is achieved by a simple memory comparison on the first 9 bytes for Eurex EMDI or 8 Bytes for Eurex MDI of a datagram containing SenderCompId and PacketSeqNum as shown in figure 20, Structure of the packet header for Eurex EMDI and figure 21, Structure of the packet header for Eurex MDI and Eurex RDI. Another important function of the packet header is to identify gaps by means of the PacketSeqNum which can be retrieved just by decoding the packet header. This means that field PacketSeqNum can be used not only to detect duplicates but also to detect missing packets. PacketSeqNum is a Byte vector and therefore not stop bit encoded as per the FAST specification. The packet header itself does not contain any product information. In order to find out which product is missing, the product level sequence number must be used in addition to the packet level sequence number; the packet needs to be decoded further down to the message level. This leaves participants with two recovery options when a gap in the PacketSeqNum's of the packet header is detected. Example: A single multicast address carries products FDAX and FGBL, but the participant is only interested in FGBL. I. Pessimistic approach: The receiving application assumes that FGBL is part of the missing packet: It immediately starts recovery actions 13 just by decoding the packet header. -- Advantage: Recovery is triggered immediately when observing a missing PacketSeqNum without decoding the entire message. -- Disadvantage: The recovery might not be necessary if FGBL is not part of the message which is inside the lost packet. II. Optimistic approach: The receiving application assumes that FGBL is not part of the missing packet: It waits for the next message on the same service and decodes the packet up to the message level to find out if a packet for FGBL has been lost before triggering recovery actions. -- Advantage: This approach allows the participant to recover only products of interest. -- Disadvantage: The receiving application needs to wait for the next message. However, the next packet may not contain a message for the product in question.
Please, compare the advantages and disadvantages of both approaches and choose the best for your needs.