Howto write a solid MAVLink implementation?

Hi, I’ve been doing some projects with pure MAVLink for a couple of years now and I would like to write a MAVLink library for java of my own.

The problem is I lack the knowledge of what should a solid (robust) implementation of MAVLink have.

With the project I have started I can send and receive MAVLink messages via UDP and TCP but I would like to know what the serious MAVLink libraries around there have that mine doesn’t. For example, one thing I’ve noticed from the mavsdk project is that it has a timeout whenever a message is send and the ACK response isn’t received.

Apart from that I have some other questions. For example if I want to connect more than one vehicle should I connect them to the same port or should I connect each to a different port. And, if I have them connected to the same port should I have a thread for each connection or should I have different threads for each connection?

Also, should I have a different thread for reading and another thread for writting or do everythin in the same thread?