Recently I'm learning AMQP protocol, I found Proton-J and Proton-J2. From their README in the github repo, it seems like they are both a Java implementation of AMQP. I took a quick look of the code, and still have no idea about the difference between them. And why to create a new version Proton-J2.
And I'd like to implement a simple version of Proton-J with less types, etc. to understand how it works. Is there a early version of Proton-J repo that I could refer to to learn the code?
The Qpid protonj2 project is a new generation of AMQP protocol engine that is based on a reactive model vs the temporal squashing model that the proton-j engine provides. The reactive model implementation solves a lot of issues that are experienced by folks implementing clients and servers since you gain full insight into the AMQP events happening in your application vs the proton-j engine's squashing of events which can sometimes hide what actually happened.
Also the protonj2 project provides a full imperative API client implementation where proton-j is simply a protocol engine.