Wire protocol support any road map about deprecation of certain versions?

Is there an official road map or similar for how long drivers (in particular the C# driver) will support a certain protocol version? Was thinking of 3.2 in particular.

Welcome to the community @Daniel_Wertheim!

We currently don’t have a standard timeline on driver support for End-of-Life (EOL) server versions, but the typical period is significantly longer than the server EOL. For example, the current C# / .NET driver is still compatible as far back as MongoDB 2.6. MongoDB 2.6 Server was first released in March, 2014 and reached end of life in October, 2016.

Since MongoDB 3.2 Server reached end of life in September, 2018 I would definitely plan an upgrade to a newer server version in the near future. MongoDB 3.6 is currently the oldest non-EOL production release series. There have so far been 5 major server releases series since MongoDB 3.2, and changes to the wire protocol may also affect server logging and troubleshooting if you are using an older driver. For example, MongoDB 3.6 drivers uses a new OP_MSG format which subsumes several opcodes used by older versions of the wire protocol.

Supported server versions may also vary by driver. For example, the new MongoDB Rust Driver only supports MongoDB 3.6+ since older server versions were already EOL before the Rust Driver GA release this week.

Can you elaborate on this requirement? If upgrading your server isn’t practical in the near term you can always continue to use an older driver version, but I would generally expect testing of drivers, tools, and applications against EOL server releases to decline over time.

There are also features in newer driver & server pairings that you’ll be missing out on, such as retryable writes, logical sessions, and transactions.

Regards,
Stennie

1 Like