About the author
So, project A which compiles to JAR A requires classes in JAR B.Project B which compiles to JAR B requires classes in JAR A.
I was asked about this, so I suggested decoupling the projects such that on a clean system with no JARs, project A and project B can be built.
On thinking about this, there is two approaches to the solution.
Solution 1 - Declare methods in interfaces and then have project A use these interfaces instead of depending on the classes directly, and similarly for project B. This will require implementing class factories, which returns singleton classes that implements these interfaces.
Solution 2 - An approach that is quite tedious.
A method to design records so that they're allocated on a specific byte boundary, such as 16 bytes, 512 bytes, 4096 bytes, etc.