Overview

This sections gives a high-level overview about datalinker and its concepts.

Users and Organizations

All configuration on datalinker is associated with an organization. Upon registering as a user, you may create several organizations and add multiple users to organizations. There is just one user role. Once added to an organization, a user has the full rights on the organization, including the rights to remove other users and to delete the organization.

Linker Services

Linker Services are the main objects on datalinker. Data is always sent between linker services. So in order to send some data over datalinker, you will need to create at least two services. If you want to send data from an app to your in-house server for example, you will create a service for the app and one for the server. Linker services are associated to an organization.

Of course, exchanging data between your own linker services is a bit boring. This is why services can also be declared as public. Public services may receive data from other public services, enabling communication between organizations.

Clients

Before you can send data between services, you need to a some clients to your linker services. Clients are basically an instance of your linker services. For example, a user who downloaded your app and wants to send some data will register as a client to your app’s linker service. On the other side you also need a client to retrieve the data from your server linker service. Therefore, clients are linked to one specific linker service.

Document Types

In order to exchange data efficiently between organizations, it is a good idea and actually a requirement to define some document types. Document types have a name and a mapping, which is just some JSON. All data sent over datalinker must have a document type specified. The mapping is optional but may be required by receiving services. Again, document types can be marked as public to enable communication across organizations. Document types are also associated to your organization.

Linker Sessions

Once you’ve setup your linker services, clients and document types, you’re ready to send data. In order to do so, you create a linker session between to services. If you’re sending data from an app for example, each instance of the app will create its own linker session. This ensures that you can identify who sent which piece of data.

Documents

The last piece of the puzzle are the documents. Documents on datalinker are the individual chunks of data being transmitted. A client sending data will create a linker session and add his data as documents to it. Of course, documents need to be associated with a document type and so it is possible to send different documents of different document types over the same linker session.

After this rather long overview, it’s best to get some coffee before continuing with the hands-on walktrough.