IAP Message Exchange Patterns & Network Topologies

Written by Zaiku | Published 2017/04/22
Tech Story Tags: microservices | development | cloud-computing | web-development | tech

TLDRvia the TL;DR App

In previous posts [1] [2] we briefly introduced our message oriented protocol IAP which is an integral part of Nanosai.com project. In this post, we`ll share a little bit more lightweight technical information about currently supported IAP message exchange patterns and network topologies.

Before we start, it is important to know that at Nanosai.com we are all about helping developers build intelligent distributed systems via the ecosystem we are developing. This ecosystem will for example enable developers to access advanced distributed systems services provided by Nanosai.com or third party services plugged into our distributed infrastructure as shown in the diagram below.

IAP Design Goals

Good communication is key for distributed systems to work smoothly as nodes need to be able to communicate properly with each other internally and also often externally depending on whether the system needs to access third parties or be exposed to third parties. We designed IAP from ground up with following intentions;

  • To be a viable replacement/supplement to HTTP, FTP, SNMP, ODBC, RPC etc.
  • To be faster and more compact than HTTP/JSON.
  • To support more message flows and thus more use cases than HTTP.
  • More plug and play than HTTP.
  • Able to be layered on top of both TCP and UDP.
  • Support both synchronous and asynchronous communication.

IAP Core Concepts

Before proceeding to the IAP message patterns, it is worth revising the core concepts behind IAP.

IAP comes with a basic message format which is used across many different use cases and all IAP messages are encoded using our binary data format ION.

Additionally, IAP was designed to be versatile and so enables developers to define different semantic protocols on top of the basic message format. The basic message format contains a set of fields that are pretty much always used in network communication. Semantic protocols can extend this message format and add protocol specific fields that are needed for a particular use case.

Supported Message Exchange Patterns

The message exchange patterns above are the ones that we have decided to support first because they cover many use cases.

Supported Network Topologies

The network topologies above are the ones that we have decided to support first because they cover many use cases.

Finally, please download our free eBook authored by our CTO here. Our open source Java toolkit Grid Ops (including IAP) is available on Github. If you would like to receive beta invite for our hosted infrastructure services when we launch, please Subscribe here.

Posted by Bambordé Baldé, Co — Founder.


Published by HackerNoon on 2017/04/22