logo
Docs « Api

Service & Message IDs

The Flowee APIs are at its core messages and replies (themselves also messages).

Service-ids

We map those messages to services by embedding a service-id in the message-header. We have several services and users can add their own services, as such you can see a service as a routing-id. A message with service-id “UtilService” will be sent to the utilties service for processing.

For speed reasons the service-id is always a positive number, as such we ship an APIProtocol.h file which maps between the named services and the numbers, as well as any other such mappings.

The main API page lists all the services, including the number they are known under.

Message-ids

Within each service there is a list of messages the service knows how to handle. For instance the UtilService accepts a Message-id of type ValidateAddress.

As such you can think of message-ids as a short hand for a specific remote procedure call. Just like in service-ids the message-ids are positive numbers.

Tag-ids

Messages are composed of a number of tags. Tags are essentially name/value pairs. So in order to encode something like ‘name=“flowee”’ you would need a tag-id that both the sender and receiver know means ‘name’. As such, just like we have message-ids we have a table of tag-ids.

Just like in service-ids and the message-ids the tag-ids are positive numbers.

Scope

For reasons of efficiency the list of message-ids or tag-ids are not one long list shared between all APIs. That is to say, the message-id list for each service starts at zero.

As such it is important to realize the following scope table.

 service-id
message-id / tag-id

Any message-id or tag-id is only valid within a certain service-id scope. If you don’t know which service you are working in, the id-numbers are meaningless because the message-id and tag-id numbers are only valid within the scope of the service.