Realm (database)
{{Short description|Open-source object database management system}}
{{Infobox software
| title = Realm
| name = Realm
| logo =
| logo caption =
| logo alt =
| logo size =
| collapsible =
| screenshot =
| screenshot size =
| screenshot alt =
| caption =
| other_names =
| author = Alexander Stigsen and Bjarne Christiansen
| developer = MongoDB Inc.
| released = {{Start date and age|2017|01}}
| ver layout =
| discontinued =
| latest release version =
| latest release date =
| latest preview version =
| latest preview date =
| repo = {{URL|https://github.com/realm}}
| qid =
| programming language = C++
| middleware =
| engine =
| operating system =
| platform =
| included with =
| replaces =
| replaced_by =
| service_name =
| size =
| standard =
| language =
| language count =
| language footnote =
| genre = Object database
| license = Apache License 2.0
| website = {{URL|https://realm.io/}}
| AsOf =
}}
Realm is an open source object database management system, initially for mobile operating systems (Android/iOS){{Cite news|url=https://news.realm.io/news/realm-object-centric-present-day-database-mobile-applications/|title=Realm: Object Centric Present Day Database for Mobile Applications|access-date=2017-04-22}} but also available for platforms such as Xamarin,{{Cite news|url=https://gooroo.io/GoorooTHINK/Article/16722/Realm-mobile-database-platform-now-has-support-for-Microsofts-Xamarin/22117|title=Realm mobile database platform now has support for Microsoft's Xamarin|work=Gooroo|access-date=2017-04-22|language=en}} React Native,{{Cite news|url=https://news.realm.io/news/introducing-realm-react-native/|title=Realm: Introducing Realm React Native|access-date=2017-04-22}} and others,{{Cite news|url=https://news.realm.io/news/realm-microsoft-xamarin-1-0-azure-windows-desktop/|title=Realm: Microsoft Xamarin 1.0, Azure, Windows Desktop|access-date=2017-04-22}}{{Cite web|url=https://adtmag.com/articles/2017/02/14/realm-microsoft.aspx|title=Realm Mobile Platform Supports Xamarin, Microsoft Azure – ADTmag|website=ADTmag|language=en|access-date=2017-04-22}} including desktop applications (Windows{{Cite news|url=https://blogs.msdn.microsoft.com/appconsult/2017/02/28/using-realm-mobile-database-in-a-converted-desktop-app-with-the-desktop-bridge/|title=Using Realm Mobile Database in a converted desktop app with the Desktop Bridge|work=App Consult Team|access-date=2017-04-22|language=en-US}}). It is licensed under the Apache License.
In September 2016, the Realm Mobile Platform was announced, followed by the first stable release in January 2017. It allows two-way synchronization between the Realm Object Server{{Cite news|url=https://www.networkworld.com/article/955356/realm-broadens-its-mobile-database-offering-with-object-server.html|title=Realm broadens its mobile database offering with Object Server|last=Kepes|first=Ben|work=Network World|access-date=2017-04-22|language=en}}{{Cite web|url=https://www.diversity.net.nz/realm-broadens-its-mobile-database-offering-with-object-server/2016/09/27/|title=Realm broadens its mobile database offering with Object Server {{!}} The Diversity Blog – SaaS, Cloud & Business Strategy|website=www.diversity.net.nz|language=en-US|access-date=2017-04-22}} and the client-side databases that belong to the given logged-in user. Both a developer and a commercial edition{{Cite news|url=http://siliconangle.com/blog/2017/01/19/1bn-installs-realm-launches-commercial-edition-mobile-database/|title=Realm launches commercial edition of its mobile database – SiliconANGLE|date=2017-01-19|work=SiliconANGLE|access-date=2017-04-22|language=en-US}} was released, along with a business license{{Cite web|url=https://adtmag.com/articles/2016/09/27/realm-mobile-platform.aspx|title=Realm Open Sources Mobile Database, Grows It into Enterprise Platform – ADTmag|website=ADTmag|language=en|access-date=2017-04-22}} for integrating with other database management systems such as PostgreSQL.{{Cite news|url=http://www.dbta.com/Editorial/News-Flashes/Realm-Makes-PostgreSQL-Real-Time-with-New-Connector-117066.aspx|title=Realm Makes PostgreSQL Real-Time with New Connector|date=2017-03-21|work=Database Trends and Applications|access-date=2017-04-22|language=en-US}}{{Cite news|url=https://thenewstack.io/realms-mobile-development-platform-links-postgresql-tie-enterprise-data/|title=Realm's Mobile Development Platform Links to PostgreSQL to Tie into Enterprise Data – The New Stack|date=2017-03-21|work=The New Stack|access-date=2017-04-22|language=en-US}}
In Spring 2019, MongoDB acquired Realm for 39 million USD.{{Cite web|last=Miller|first=Ron|title=MongoDB to acquire open-source mobile database Realm for $39 million|url=https://techcrunch.com/2019/04/24/mongodb-to-acquire-open-source-mobile-database-realm-startup-that-raised-40m/|access-date=2019-04-25|website=techcrunch.com|language=en-US}}
In September 2023, the Realm database was rebranded to be called "Atlas Device SDKs". However, in the following year, September 2024, MongoDB announced the deprecation of the Atlas Device Sync service, synchronizing Realm with MongoDB. While the proprietary sync service wil be discontinued, the database will still be available as open-source, but will no longer be maintained by the MongoDB team.{{Cite web|title=MongoDB Feature Updates: End-of-Life and Deprecation|url=https://www.mongodb.com/products/updates/product-support-deprecation?tck=notice_product_deprecation_2024|access-date=2024-09-30|website=mongodb.com|language=en-US}} In October 2024, MongoDB announced several options that will offer a sync service for MongoDB instead, e.g. Ditto, ObjectBox and Powersync.
History
Realm's development began in the end of 2010 by Alexander Stigsen, along with Bjarne Christiansen,{{Cite news|url=http://www.businessinsider.com/realm-started-by-former-nokia-engineers-is-going-bonkers-2015-3|title=A startup launched 9 months ago by these former Nokia engineers is going absolutely bonkers|work=Business Insider|access-date=2017-04-22|language=en}} under the name TightDB. The company started in 2011 at Y Combinator.
It was promoted as NoSQL with configurable durability, and the ability to share the same groups of data across multiple processes, but also even multiple devices and clusters.
TightDB renamed its product to Realm in September 2014, and released it for public testing.
In March 2015, funding of about $20 million was disclosed.{{Cite web |url= https://techcrunch.com/2015/03/24/realm-can-expand-its-reach-with-20m-investment/ |title= Realm Can Expand Its Reach With $20M Investment |author= Ron Miller |work= Tech Crunch |date= March 24, 2015 |access-date= May 21, 2017 }}{{Cite web |title= Form D: Notice of Exempt Offering of Securities |date= March 30, 2015 |url= https://www.sec.gov/Archives/edgar/data/1582311/000158231115000001/xslFormDX01/primary_doc.xml |access-date= May 21, 2017 }}
Realm was mentioned in some trade press,{{Cite news|url=http://www.infoworld.com/article/3159174/mobile-development/realm-revives-object-database-for-mobile-dev.html|title=Realm revives object database for mobile dev|last=Krill|first=Paul|work=InfoWorld|access-date=2017-04-22|language=en}}{{Cite web |url= https://www.theregister.co.uk/2016/09/29/realm_floats_realtime_database/ |title= Realm – a database you may not have heard of but app devs have – touts cloudy platform |date= September 29, 2016 |author= Thomas Claburn |work= The Register |access-date= May 21, 2017 }} including by other firms such as IBM.{{Cite news|url=https://developer.ibm.com/opentech/2016/12/12/visual-recognition-mobile-app-with-watson-realm-and-swift/|title=Visual Recognition Mobile App with Watson, Realm, and Swift – IBM OpenTech|date=2016-12-12|work=IBM OpenTech|access-date=2017-04-22|language=en-US}}
Realm announced version 1.0 in June 2016, and released a platform for real-time two-way synchronization (beta in 2016 September, release in 2017 January),{{Cite news|url=https://news.realm.io/news/alexander-stigsen-introducing-the-realm-mobile-platform/|title=Realm: Introducing the Realm Mobile Platform|access-date=2017-04-22}} and provided a Node.js SDK for server-side applications.{{Cite web|url=https://www.infoq.com/news/2016/11/Realm-database-nodejs|title=Realm Releases Object Database for Node.js|website=InfoQ|access-date=2017-04-22}}
In May 2017, UWP support was announced.
In September 2024, MongoDB announced the deprecation of their sync service that was tied to Realm DB and their discontinuation of Realm DB support.
Features
The most notable features of Realm are the following:
- As Realm is an object store, its typed language-specific APIs map typed objects directly into the Realm file – therefore classes are used as the schema definition.
- Relationships between objects are allowed via "links". Each "link" creates a "backlink" as an inverse relationship to whichever objects are linking to the current object.
- The query results returned by Realm are thread-local views to the current "database version" (as Realm handles concurrency with MVCC architecture), and these views "automatically update" when a transaction is committed from any thread, as long as Realm is able to update its instance version (which is possible on threads that are able to receive change notifications). When this happens, Realm calls change listeners that are added to its query results (if they've changed).
- Each thread-local view returns proxy objects that only read from/write to the database when an accessor method is called, meaning all database access is lazy-loaded. Writes are allowed only while in a write transaction.
- As each query result and each proxy object is a view to the underlying data, any change made to the database is reflected in all objects that point to the same data. Realm generally calls this behavior "zero-copy architecture" (along with the previously mentioned lazy-loaded data access).
Programming language support
References
{{reflist}}
External links
- {{Official website|https://realm.io/}}