JSON Actor Message Protocol (JAMP)

What is it?

The primary goal of JAMP is to provide structure for a JSON-based messaging over a WebSockets connection. JAMP will support a next generation SOA/REST style communication.

Think of JAMP as SOAP on a strict diet and based on JSON and the interfaces of your programming languages instead of XML and WSDL+XML schema.

JSON Actor Message Protocol defines a bidirectional messaging protocol using JSON as a payload serialization format.

Messages are typed and addressed. Both unidirectional messages and bidirectional queries are supported. JAMP can be sent on messaging framing protocols like WebSockets, HTTP (REST), AMQP, or STOMP.

Simple Design

JAMP is a very simple and easy to implement serialization protocol, coming from the JSON school of design.

JAMP is the logical next step in REST/SOA evolutionary architectures to fit WebSockets, STOMP and AMQP. It augments STOMP and AMQP by adding a common serialization that is easily available and marshalable to many different languages. It aguments REST by giving you many more verbs, and a async messaging architecture to build your services on top of.

It should be possible for a seasoned developers to write their own JAMP bindings for their programming language of choice in a couple of days or even less if they use an existing JSON parser.

One of the goals of this project is to write reference implementations in JavaScript, Java and Python with the hope that others will write Ruby, Objective C, C# et al.

Try this visual tutorial on what JAMP is: Visual Tutorial to JAMP

Get It

The latest version of the specification can be found at:

Format is in IETF, but it has not been decided if or when it will be submitted to IETF.

Mailing List

If your are a JAMP implementer, we would we love you to join the specification discussions.

The main mailing list is hosted at the jamp-spec google group.

Be aware that to reduce spam your first post will be moderated through; so please be patient. (Unfortunately we get a lot of spam)