Basic Concepts

Objects and Classes

The basic idea is, that you store your data inside objects and link it by using link attributes.

Every object has one or more classes (defined with the Data Type Definition Language or DTDL). A class only exists, if it is referenced by another object or as part of a named object. An object only exists if it contains at least one referenced class.

Every object has an id. Those ids are guaranteed to be unique inside the domain.

How To Navigate

An appplication normally starts its navigation with a named object. These are objects that can be found by their named object guid. Those named objects are in most cases built during setup.

From this point the application can follow the path to the data it is interested. If you have for example a named object 'contracts' you first open the contracts object. Then via the attribute 'currentcontracts' you can find a list of all current contracts. When you have found the contract, you can open it and via its attibute 'owner' you find the owner of that contract. Inside the next object you could have a link to the 'address' object and so on.

The navigation relies on those links an application creates. It is a very natural way of working with data and data links and therefor allows you to build and model data without any transformation from the real world. You simply do, think and work as always.

Multiple Places

Because of its special linking feature, DataFS provides an easy way of accessing data from different paths. There is no need to build a tree or to decide wheter to store data in one or the other place. Data seems to exist in multiple places at the same time.

Multiple Classes

One of the main ideas of DataFS is that every object cannot just exist in multiple places, but that it can also be different types of objects at the same time. Because every object can have many classes at the same time, it can contain information for e.g. a contract, notes, car information and hotel room status at the same time. This provides a great flexibility for data modeling.


Every operation on the database is part of a 'transaction' or 'action group'. Action groups can contain write and read operations. When an action group is being executed, the system first executes all write operations and then all read operations. All write operations are executed as one atomic operation and then all read operations are executed as one atomic operation. 'Atomic operation' means that the system executes everything or nothing and all at the exact same time. The read operations are always executed after the write operations. You should not expect, that they are executed at the same time as the write operations.

© 2020 Mobiland AG