This document describes the PCP framework and its communications protocol.
- Introduction - overview of the PCP framework
- Terminology - definitions used by the Puppet communications protocol
- Session Association - initialise connections and associate sessions
- Inventory - inventory service and transaction
- Message Delivery - how the fabric processes and delivers client messages
- Destination Report - how the fabric reports the receivers of a message
- Error Handling - error handling
- Message Expiration - how the fabric reports expired messages
- Delivery Guarantees - how the fabric guarantees the delivery of messages
- Message Versioning - how the fabric handles message versions
The following projects follow the PCP specifications described here, using WebSockets as the underlying wire protocol.
- pcp-broker provides a PCP broker implementation in Clojure
- cpp-pcp-client is a PCP client library written in C++
- pxp-agent is a PXP agent based on cpp-pcp-client, that offers a Puppet module
- clj-pcp-common is a library for processing PCP messages written in Clojure
- clj-pcp-client is a PCP client ibrary written in Clojure