A combined in-memory database engine and application server keeps data in one place. This technology is called "virtual machine database management system", or VMDBMS. The patent related to the technology explains it this way: In such a system, the environment is configured to maintain a database of objects in a database memory within the environment memory. An application executes in an application memory within the environment memory, and upon instantiation of a database object, the application environment allocates memory in the database for the database object, the database providing master storage for the database object. Tables and classes are the same as a consequence of the VMDBMS which lets the application and database be in the same
virtual memory space. The implication of this is that there is no
object-relational mapper (ORM). Instead, the database is directly accessed using
SQL-like queries called
NewSQL from the application code. A major drawback with in-memory databases is that main memory is volatile and does therefore not ensure
durability. The solution to this, which Starcounter utilizes, is to write transaction logs to a disk the same way it's done in traditional SQL databases. If data needs to be recovered, it's possible to do so by going back in the transaction logs. The communication between the client and the server is done using a thin client library that sends
JSON-patches. The recommended way to build the view in Starcounter applications is to use
HTML,
CSS,
Polymer, and
Web Components, with as little logic as possible on the client side. == Similar software ==