. . .

Database

ApiOmat uses a MongoDB as storage system. MongoDB supports several use cases and features which are crucial for ApiOmat :

  • Highly Scalable

  • High Performance

  • Flexible Data Model

  • Geospatial searches

  • Basic fulltext search

The ApiOmat installers also installed a recent version of MongoDB on the application servers. On larger installations, MongoDB is typically installed directly on DB nodes. In the YAMBAS configuration, the MongoDB server(s) can be specified, letting the DB driver handle communication with replication and sharding setups.

ApiOmat uses a central database called apiomat to store class information, customers and apps. The data for each app is stored in separate databases, one per system. That is, if one owns an application called MyApp1, ApiOmat will create a database MyApp1 (LIVE system), MyApp1STAGING and MyApp1TEST. This eases separate backups and restores as well as data separation.

To separate systems on production environments and keep control of performance impacts, it is also possible to set up one MongoDB installation per system. This way, the LIVE system could be live on MongoDB cluster A, whereas STAGING and TEST are on cluster B. If a high traffic batch operation is executed on the test system, this would not affect the performance at the LIVE system.