MikroORM allows handling transactions automatically. When you call
em.flush(), all computed changes are wrapped inside a database transaction.
Uses source code analysis so you do not have to repeat yourself when defining entities. Simply define correct TypeScript types and you are good to go!
Supports both SQL and NoSQL
Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases, and more can be supported via custom drivers right now.