Within SST, normal Smalltalk message sends and replies are treated as instances of the classes SstRequest and SstReply (subclasses of SstAbstractRequest), respectively. Both requests and replies contain an indication of the message receiver, a selector, and the arguments for the message. Message objects also have an info table, which is used to tag messages with system and application-level information. The info table is much like a dictionary though it is recommended that only simple objects such as immediates or immutables be used as keys. The values may be any object but note that no special steps are taken during their marshaling. That is, if they are mutable, they may be passed as references.
SstRequest objects embody a Smalltalk message being sent. In addition to the slots standard receiver, selector, arguments slots, they maintain a replyReceiver. When a request is sent, this field may have one of the following settings which define how the result of the request is handled.
Replies are treated largely as requests to return a value to the sender. That is, they are much the same as requests but are somewhat under-the-hood. They are simply messages sent to the specified reply receiver where the selector is typically sstSetValue: and the single argument is the value being returned.