The code morphed into an implementation of the SA Forum interfaces in April 2003 around the time the specifications were planned to be published. The initial implementation supported cluster membership and the availability management framework (AMF).
In January 2004, the architecture changed to use virtual syncrhony instead of TCP/IP point to point connections. This gave openais excellent performance and reliability characteristics.
In June 2004, MontaVista Software open sourced under the Revised BSD license the source code to openais. At that time, cluster membership, the availability management framework, and checkpointing were open sourced.
In September 2004, the event service was merged into the source tree by its contributor Mark Haverkamp. The EVS service was also merged into the tree.
In January 2005, a new protocol implementation based upon the Totem Single Ring Protocol was merged into the tree. It took about five months to solidfy this code but there have not been bugs reported since :).
In Auguest 2005, The first look of the AMF B implementation was published.
In November 2005, Patrick Caulfield's ipv6 patch was merged allowing totem to be used in an IPV6 environment.
In January 2006, the YKD primary component selection algorithm was merged.
In January 2006, AMF B.01.01 was merged. It still needs alot of work, so please if your interested in developing, come join the effort.
In January 2006, the initial live component replacement code was merged along with dynamic service handler support.
In February 2006, Fabien Thomas provided a BSD/Darwin port which was merged into the tree.
In March 2006, Patrick Caulfield wrote the closed process groups API and it was merged into the tree.
In April 2006, the virtual synchrony filter was turned into a dynamic component and the ability to provide plugin replacements for the VSF was made possible with the ykd and none options.
In May 2006, the Totem Redundant Ring Protocol was merged into the tree with active, passive, and none replication styles.
In June 2006, the cluster membership and checkpointing services were 32/64/endianized. This allows running 32 and 64 bit applications with a 32 or 64 bit executive in a cross endian environment.