メッセージ通信では、通信するデータを構造化して扱う。この構造化されたデータ単位がメッセージである。
nine ではメッセージをプログラムで扱うために、いくつかの決まりごとを導入している。
メッセージはアプリケーションで必要なだけの種類がある。それらを識別するために、個々のメッセージ型にはユニークな ID を割り当てる。
ID は 16bit の値である。このうち上位 4bit を KIND, 下位12bit を TYPE としている。
KIND はメッセージ群をグループ分けするのに用いる。KIND=0 は nine のシステム側で利用するために予約している。
nine では、通信するメッセージ型の一つ一つを C++ のクラスで表す。 具体的には、nine::Message クラスを継承したクラスを定義する。
メッセージクラスには、メッセージの内容の記述と、ネットワーク上での表現形式へ変換する機能を実装する必要がある。 nine では、両方を直接ソースコードで書き下す方法と、IDL を用いてデータ定義だけを行う方法もある。