{"id":859,"date":"2023-05-09T13:38:00","date_gmt":"2023-05-09T11:38:00","guid":{"rendered":"https:\/\/itsonix.laolaweb.com\/?p=859"},"modified":"2026-05-13T13:41:03","modified_gmt":"2026-05-13T11:41:03","slug":"realm-as-plain-storage-pitfalls-and-issues","status":"publish","type":"post","link":"https:\/\/itsonix.eu\/de\/blog\/realm-as-plain-storage-pitfalls-and-issues\/","title":{"rendered":"Realm as Plain Storage \u2013 Pitfalls and Issues"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Um Daten auf mobilen Endger\u00e4ten dauerhaft zu speichern, gibt es viele Ans\u00e4tze und technische M\u00f6glichkeiten. Datenbanken und speziell SQL-Datenbanken sind dabei sehr verbreitet. H\u00e4ufig verf\u00fcgen diese aber \u00fcber jene Kriterien, auf die es nur f\u00fcr Anwendungsf\u00e4lle au\u00dferhalb von Apps wirklich ankommt. Komplexe Abfragen und Aggregationen m\u00f6gen in vielen Cloud- und Server-Anwendungen selbstverst\u00e4ndlich sein, auf mobilen Endger\u00e4ten z\u00e4hlt jedoch oftmals die Zugriffsgeschwindigkeit deutlich mehr. Speziell hierf\u00fcr hat sich Realm von MongoDB etabliert. Es handelt sich dabei um eine auf Zugriffe optimierte NoSQL-\/Objektdatenbank.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Abgrenzung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Realm bietet als Datenbank f\u00fcr mobile Ger\u00e4te diverse Mechanismen f\u00fcr lokale Live-Updates und auch eine Cloud-gest\u00fctzte Synchronisation \u00fcber mehrere Devices und Betriebssysteme hinweg. Darum soll es in diesem Beitrag jedoch nicht gehen. Stattdessen beleuchten unsere Xperten, auf welche Dinge beim Einsatz von Realm als reine Speicherl\u00f6sung geachtet werden sollte.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Realm als intuitiv-minimale Schnittstelle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In der objektorientierten Programmierung hat es sich mittlerweile in vielen Anwendungen etabliert, verschiedene Schichten bei der Erstellung von Klassen zu trennen. Etwa die Gesch\u00e4ftslogik von der Speicherebene oder von einer Webschnittstelle. Die Gr\u00fcnde daf\u00fcr lassen sich auf die Formate ihrer Properties und dem Single-responsibility principle (SRP) zur\u00fcckf\u00fchren. Bei Speicher- und Webschnittstellen sind diese Klassen sogenannte Data Transfer Objects, kurz DTOs. In Realm werden basierend auf dem eigenen Datenmodell im Hintergrund DTOs generiert, welche alle Felder als Lazy Access behandeln. Das geht Hand in Hand mit dem NoSQL-Ansatz von Realm. Daten werden also erst gelesen und geschrieben, wenn die Felder der DTOs angesprochen werden und auch nur genau diese. Um Daten zu speichern oder upzudaten, bestehen somit effektiv zwei M\u00f6glichkeiten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ein neues DTO erzeugen und per Primary Key ein neues Objekt anlegen oder ein bestehendes aktualisieren und alle relevanten Felder mit Daten beschreiben<\/li>\n\n\n\n<li>Ein existierendes DTO per Query aus der Datenbank laden und Felder mit neuen Werten beschreiben<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Obwohl Realm nur Felder lazy schreibt, werden bei Erzeugung eines neuen DTO trotzdem alle Felder in die Datenbank geschrieben, auch jene, die von Entwickelnden nicht selbst gef\u00fcllt wurden. Felder, die auf null belassen werden, w\u00fcrden bei einem Update mit neuem DTO also dennoch bisher existierende Felder desselben Objekts in der Datenbank \u00fcberschreiben. Ein Update einzelner Felder muss also immer \u00fcber ein vorheriges Query durchgef\u00fchrt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein einfaches Realm-Objekt k\u00f6nnte wie folgt aussehen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"377\" height=\"197\" src=\"https:\/\/test.itsonix.eu\/wp-content\/uploads\/2026\/05\/4362d14bcc042657c1919c2c75c33ff5cf83c594-dto.png\" alt=\"\" class=\"wp-image-864\" title=\"dto\" srcset=\"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/4362d14bcc042657c1919c2c75c33ff5cf83c594-dto.png 377w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/4362d14bcc042657c1919c2c75c33ff5cf83c594-dto-300x157.png 300w\" sizes=\"(max-width: 377px) 100vw, 377px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Objekt-Dependencies und Nested Object Graph<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Da Realm eine Objektdatenbank ist und Nested Objects explizit vorgesehen sind, ergeben sich als Storage-M\u00f6glichkeit f\u00fcr Realm sehr schnell komplexe Graphen oder sogar Zyklen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel Nested Objects:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"438\" height=\"463\" src=\"https:\/\/test.itsonix.eu\/wp-content\/uploads\/2026\/05\/d114b0bcefd6a32d06d8df5c712f578ab9e862f1-dtos.png\" alt=\"\" class=\"wp-image-863\" title=\"dtos\" srcset=\"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/d114b0bcefd6a32d06d8df5c712f578ab9e862f1-dtos.png 438w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/d114b0bcefd6a32d06d8df5c712f578ab9e862f1-dtos-284x300.png 284w\" sizes=\"(max-width: 438px) 100vw, 438px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Intern arbeitet Realm hinter den generierten DTOs mit Referenzen auf Speicheradressen, die auf dieselben Speicherstellen referenzieren. Dies gilt allerdings nur f\u00fcr Simple Properties. Referenzen auf andere Nested Objects werden durch das Wrapping in DTOs auf eigene Instanzen gemappt. F\u00fcr eine Verwendung in bspw. HashSets oder Listen k\u00f6nnte dies schnell zu unerw\u00fcnschten Duplikaten f\u00fchren. Um das Codebeispiel von vorhin wieder aufzugreifen, k\u00f6nnten etwa zwei verschiedene ShoppingCarts auf dasselbe ShopItem verweisen. Realm w\u00fcrde dabei zwei Instanzen des ShopItems erzeugen, die aber beide auf dieselben Properties verweisen und bei einer \u00c4nderung des einen auch eine \u00c4nderung des anderen bewirken w\u00fcrden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"445\" src=\"https:\/\/test.itsonix.eu\/wp-content\/uploads\/2026\/05\/Objects-1024x445.jpg\" alt=\"\" class=\"wp-image-862\" title=\"Objects\" srcset=\"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Objects-1024x445.jpg 1024w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Objects-300x130.jpg 300w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Objects-768x334.jpg 768w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Objects-1536x668.jpg 1536w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Objects.jpg 1840w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">DTO vs. Modelle<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Realm ist ausgelegt auf direktes UI-Binding durch eigene Adapter, die bei \u00c4nderungen in der Datenbank reagieren und die UI aktualisieren. Was auf den ersten Blick sehr praktisch erscheinen mag, stellt sich jedoch schnell als technische H\u00fcrde heraus \u2013 bedingt durch die stetig wachsende Speicheranforderung an die offen gehaltene Live-Datenbank. Zudem widerspricht ein direktes Binding der DTOs einer sauberen Abstraktion zwischen Datenbank-Repr\u00e4sentation und Modell-Ebene einer App. Die \u00fcblichen Inkompatibilit\u00e4ten zwischen diversen Datentypen sind nur eines der typischen Probleme (bspw. File\/URI vs. String). Volatile Properties, die lediglich zur Laufzeit Verwendung finden und nicht gespeichert und somit explizit als ignored markiert werden m\u00fcssen, bilden ein weiteres Problem, welches bei der automatischen Datenbankmigration schnell zu einem Fallstrick und einem inkompatiblen Datenbankschema f\u00fchren kann. Speziell unter iOS ist die Swift-API f\u00fcr Realm so gestaltet, dass sie eigenst\u00e4ndig Migrationen von einer Datenbankschemaversion zur n\u00e4chsten durchf\u00fchrt, ohne den Entwickelnden die M\u00f6glichkeit expliziter Migration zu bieten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel eines Gesch\u00e4ftslogik-Modells in Anlehnung zum oben gef\u00fchrten DTO:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"336\" height=\"130\" src=\"https:\/\/test.itsonix.eu\/wp-content\/uploads\/2026\/05\/cd7c03113fb4a8df2d8d7f0c8debea03e214056c-model.png\" alt=\"\" class=\"wp-image-861\" title=\"model\" srcset=\"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/cd7c03113fb4a8df2d8d7f0c8debea03e214056c-model.png 336w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/cd7c03113fb4a8df2d8d7f0c8debea03e214056c-model-300x116.png 300w\" sizes=\"(max-width: 336px) 100vw, 336px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Eine Umwandlung von DTOs in Modell-Objekte steht dabei vor der Herausforderung des im vorherigen Abschnitt beschriebenen Nested Object Graphs. Identische Objekte, die durch separate DTO-Instanzen repr\u00e4sentiert werden, k\u00f6nnten bei einer Konversion leicht als eigene Objekte instanziiert werden. \u00c4nderungen an ihren Properties w\u00e4ren zur Laufzeit unabh\u00e4ngig voneinander m\u00f6glich, aber beim Schreiben zur\u00fcck in die Datenbank w\u00fcrden bei einer R\u00fcckkonvertierung in DTOs zwei DTOs mit unterschiedlichen Properties und demselben Primary Key erzeugt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das effektive Ergebnis hinge von der Bearbeitungsreihenfolge ab und w\u00e4re somit als undefinierbar einzustufen. Eine Caching-Strategie von Modell-Instanzen w\u00e4re im Schritt der DTO-to-Model-Konvertierung ein Ausweg aus dieser Situation. So w\u00fcrden alle Objekte auf dieselben Instanzen von Nested Objects verweisen und es g\u00e4be keine Duplikate. Eine R\u00fcckkonvertierung in DTOs w\u00fcrde zwar noch immer mehrere DTOs erzeugen, ihre Properties w\u00e4ren allerdings alle identisch. Es bliebe hier lediglich ein Overhead zu beachten, der gewisse DTOs eventuell mehrfach in die Datenbank schreiben w\u00fcrde, abh\u00e4ngig von der Anzahl ihrer Referenzen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Beispiel:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"372\" height=\"370\" src=\"https:\/\/test.itsonix.eu\/wp-content\/uploads\/2026\/05\/704d5d93729dd3bba941e8b02eef8f28f6174ce9-models.png\" alt=\"\" class=\"wp-image-860\" title=\"models\" srcset=\"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/704d5d93729dd3bba941e8b02eef8f28f6174ce9-models.png 372w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/704d5d93729dd3bba941e8b02eef8f28f6174ce9-models-300x298.png 300w, https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/704d5d93729dd3bba941e8b02eef8f28f6174ce9-models-150x150.png 150w\" sizes=\"(max-width: 372px) 100vw, 372px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Zyklische Nested Objects<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wie in jedem komplexen System w\u00e4re auch hier ein Zyklus zwischen diversen Objekten denkbar. Das obige Codebeispiel zeigt einen Zyklus zwischen User und ShoppingCart, was f\u00fcr den Zugriff zwar zweckdienlich ist, aber f\u00fcr die DTO-Konvertierung eine H\u00fcrde darstellt. Realm nutzt intern einen Backlink von Tabellenspalten auf Nested Objects, sodass eine doppelt verkettete Referenz entsteht. Schauen wir uns also bspw. das UserDTO an, so nutzt Realm intern im ShoppingCartDTO eine Spalte, die zur\u00fcck auf das UserDTO verweist. Leider ist dieser Backlink \u00fcber die Hochsprachenbibliotheken von Realm in Swift oder Kotlin nicht verf\u00fcgbar. Daher existiert in den DTOs nur eine Referenz von UserDTO auf ShoppingCartDTO, also ein Tree.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein zyklischer Graph lie\u00dfe sich technisch \u00fcber eine zus\u00e4tzliche Referenz anlegen. Realm selbst ist in der Lage, mit direkten zyklischen Referenzen umzugehen. Man k\u00f6nnte also im ShoppingCartDTO eine Referenz auf UserDTO einf\u00fchren. In Anbetracht einer DTO-to-Model-Konvertierung w\u00e4re davon allerdings abzuraten. Ein \u00fcbliches Vorgehensmodell erinnert hier an Foreign-Key-Mechaniken von SQL-Datenbanken. Vorstellbar w\u00e4re also eine Property im ShoppingCartDTO, die den Universally Unique Identifier (UUID) des Users enth\u00e4lt. Bei der Konvertierung w\u00e4re das User-Objekt dann aus dem Cache oder aus Realm ladbar. Eine andere M\u00f6glichkeit erg\u00e4be sich daraus, keine R\u00fcckreferenz zu haben, solange die Konvertierung immer beim User-Objekt beginnt und den Tree tiefer wandert. So w\u00e4re es bspw. bei der Konvertierung des ShoppingCartDTOs m\u00f6glich, dem ShoppingCart die bereits konvertiere User-Instanz zuzuweisen. ShoppingCart w\u00e4re in diesem Fall sinnvoll als WeakProperty zu f\u00fchren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In der Modell-Schicht der Anwendung lie\u00dfe sich dies exakt so abbilden und als direkte Referenzierung zwischen Objekten modellieren. Bei der DTO-to-Model-Konvertierung w\u00e4re in Kombination mit Modell-Caching zu beachten, dass zun\u00e4chst das Parent-Object User selbst im Cache hinterlegt wird, bevor das Nested Object ShoppingCart geladen wird. Letzteres w\u00fcrde sonst das Parent-Object User nicht anhand des Primary Keys im Cache finden und eine neue Instanz erzeugen, womit zwei unabh\u00e4ngige User-Instanzen existieren w\u00fcrden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ausblick<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die bisher erl\u00e4uterten Details sind inh\u00e4rent in Realm und finden sich so oder in \u00e4hnlicher Form auch in anderen Datenbanken. Dar\u00fcber hinaus lassen sich bei Realm auch H\u00fcrden identifizieren, die nicht inh\u00e4rent, sondern auf Bugs und interne Probleme zur\u00fcckzuf\u00fchren sind. Das trifft bspw. auf das gef\u00fchrte ChangeLog der Kotlin\/Realm-API zu und ein genauerer Blick darauf kann sich durchaus lohnen. Was die Ursachen und Fehler betrifft, so ist MongoDB\/Realm stets hinterher, diese zu beheben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch wenn Realm nach unserer Erfahrung wom\u00f6glich nicht zur stabilsten aller Datenbanken z\u00e4hlt, ist sie mit klar seriellem Zugriff ein \u00e4u\u00dferst zuverl\u00e4ssiges Tool. Gerade f\u00fcr gro\u00dfe Datenmengen mit sehr simplen Zugriffsmustern eignet sich Realm aus Sicht unserer Xperten besonders.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um Daten auf mobilen Endger\u00e4ten dauerhaft zu speichern, gibt es viele Ans\u00e4tze und technische M\u00f6glichkeiten. Datenbanken und speziell SQL-Datenbanken sind dabei sehr verbreitet. H\u00e4ufig verf\u00fcgen diese aber \u00fcber jene Kriterien, auf die es nur f\u00fcr Anwendungsf\u00e4lle au\u00dferhalb von Apps wirklich ankommt. Komplexe Abfragen und Aggregationen m\u00f6gen in vielen Cloud- und Server-Anwendungen selbstverst\u00e4ndlich sein, auf mobilen [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":865,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-859","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softwareentwicklung"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Realm as Plain Storage \u2013 Pitfalls and Issues - IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen<\/title>\n<meta name=\"description\" content=\"it Sonix Blog: Realm as Plain Storage \u2013 Pitfalls and Issues\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itsonix.eu\/de\/blog\/realm-as-plain-storage-pitfalls-and-issues\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Realm as Plain Storage \u2013 Pitfalls and Issues - IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen\" \/>\n<meta property=\"og:description\" content=\"it Sonix Blog: Realm as Plain Storage \u2013 Pitfalls and Issues\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itsonix.eu\/de\/blog\/realm-as-plain-storage-pitfalls-and-issues\/\" \/>\n<meta property=\"og:site_name\" content=\"IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-09T11:38:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-13T11:41:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1840\" \/>\n\t<meta property=\"og:image:height\" content=\"800\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Praktikant\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Praktikant\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/\"},\"author\":{\"name\":\"Praktikant\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#\\\/schema\\\/person\\\/829813e3a66c2dfbb030cd6647f3caf3\"},\"headline\":\"Realm as Plain Storage \u2013 Pitfalls and Issues\",\"datePublished\":\"2023-05-09T11:38:00+00:00\",\"dateModified\":\"2026-05-13T11:41:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/\"},\"wordCount\":1348,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/itsonix.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg\",\"articleSection\":[\"Softwareentwicklung\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/\",\"url\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/\",\"name\":\"Realm as Plain Storage \u2013 Pitfalls and Issues - IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/itsonix.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg\",\"datePublished\":\"2023-05-09T11:38:00+00:00\",\"dateModified\":\"2026-05-13T11:41:03+00:00\",\"description\":\"it Sonix Blog: Realm as Plain Storage \u2013 Pitfalls and Issues\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/#primaryimage\",\"url\":\"https:\\\/\\\/itsonix.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg\",\"contentUrl\":\"https:\\\/\\\/itsonix.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg\",\"width\":1840,\"height\":800,\"caption\":\"Illustration einer Datensynchronisation zwischen Smartwatch, Smartphone, Laptop, Server und Desktop-Computer mit Fortschrittsanzeige f\u00fcr den Datenabgleich.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/blog\\\/realm-as-plain-storage-pitfalls-and-issues\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Realm as Plain Storage \u2013 Pitfalls and Issues\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/\",\"name\":\"IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#organization\",\"name\":\"IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen\",\"url\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/itsonix.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/itsonix_rgb.png\",\"contentUrl\":\"https:\\\/\\\/itsonix.eu\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/itsonix_rgb.png\",\"width\":1755,\"height\":296,\"caption\":\"IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen\"},\"image\":{\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/itsonix.eu\\\/de\\\/#\\\/schema\\\/person\\\/829813e3a66c2dfbb030cd6647f3caf3\",\"name\":\"Praktikant\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dcf1b27e4ed416dc1ee2931ab8eac2c1ed8dc060bed9a0d6bb1f0501c05c25d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dcf1b27e4ed416dc1ee2931ab8eac2c1ed8dc060bed9a0d6bb1f0501c05c25d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dcf1b27e4ed416dc1ee2931ab8eac2c1ed8dc060bed9a0d6bb1f0501c05c25d?s=96&d=mm&r=g\",\"caption\":\"Praktikant\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Realm as Plain Storage \u2013 Pitfalls and Issues - IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen","description":"it Sonix Blog: Realm as Plain Storage \u2013 Pitfalls and Issues","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itsonix.eu\/de\/blog\/realm-as-plain-storage-pitfalls-and-issues\/","og_locale":"de_DE","og_type":"article","og_title":"Realm as Plain Storage \u2013 Pitfalls and Issues - IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen","og_description":"it Sonix Blog: Realm as Plain Storage \u2013 Pitfalls and Issues","og_url":"https:\/\/itsonix.eu\/de\/blog\/realm-as-plain-storage-pitfalls-and-issues\/","og_site_name":"IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen","article_published_time":"2023-05-09T11:38:00+00:00","article_modified_time":"2026-05-13T11:41:03+00:00","og_image":[{"width":1840,"height":800,"url":"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg","type":"image\/jpeg"}],"author":"Praktikant","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Praktikant","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/#article","isPartOf":{"@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/"},"author":{"name":"Praktikant","@id":"https:\/\/itsonix.eu\/de\/#\/schema\/person\/829813e3a66c2dfbb030cd6647f3caf3"},"headline":"Realm as Plain Storage \u2013 Pitfalls and Issues","datePublished":"2023-05-09T11:38:00+00:00","dateModified":"2026-05-13T11:41:03+00:00","mainEntityOfPage":{"@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/"},"wordCount":1348,"commentCount":0,"publisher":{"@id":"https:\/\/itsonix.eu\/de\/#organization"},"image":{"@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/#primaryimage"},"thumbnailUrl":"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg","articleSection":["Softwareentwicklung"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/","url":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/","name":"Realm as Plain Storage \u2013 Pitfalls and Issues - IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen","isPartOf":{"@id":"https:\/\/itsonix.eu\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/#primaryimage"},"image":{"@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/#primaryimage"},"thumbnailUrl":"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg","datePublished":"2023-05-09T11:38:00+00:00","dateModified":"2026-05-13T11:41:03+00:00","description":"it Sonix Blog: Realm as Plain Storage \u2013 Pitfalls and Issues","breadcrumb":{"@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/#primaryimage","url":"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg","contentUrl":"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/Realm-as-Plain-Storage-Pitfalls-and-Issues.jpg","width":1840,"height":800,"caption":"Illustration einer Datensynchronisation zwischen Smartwatch, Smartphone, Laptop, Server und Desktop-Computer mit Fortschrittsanzeige f\u00fcr den Datenabgleich."},{"@type":"BreadcrumbList","@id":"https:\/\/itsonix.eu\/blog\/realm-as-plain-storage-pitfalls-and-issues\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/itsonix.eu\/de\/"},{"@type":"ListItem","position":2,"name":"Realm as Plain Storage \u2013 Pitfalls and Issues"}]},{"@type":"WebSite","@id":"https:\/\/itsonix.eu\/de\/#website","url":"https:\/\/itsonix.eu\/de\/","name":"IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen","description":"","publisher":{"@id":"https:\/\/itsonix.eu\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itsonix.eu\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/itsonix.eu\/de\/#organization","name":"IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen","url":"https:\/\/itsonix.eu\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/itsonix.eu\/de\/#\/schema\/logo\/image\/","url":"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/itsonix_rgb.png","contentUrl":"https:\/\/itsonix.eu\/wp-content\/uploads\/2026\/05\/itsonix_rgb.png","width":1755,"height":296,"caption":"IT Sonix - Ihr Partner f\u00fcr individuelle Softwarel\u00f6sungen"},"image":{"@id":"https:\/\/itsonix.eu\/de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/itsonix.eu\/de\/#\/schema\/person\/829813e3a66c2dfbb030cd6647f3caf3","name":"Praktikant","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/5dcf1b27e4ed416dc1ee2931ab8eac2c1ed8dc060bed9a0d6bb1f0501c05c25d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dcf1b27e4ed416dc1ee2931ab8eac2c1ed8dc060bed9a0d6bb1f0501c05c25d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dcf1b27e4ed416dc1ee2931ab8eac2c1ed8dc060bed9a0d6bb1f0501c05c25d?s=96&d=mm&r=g","caption":"Praktikant"}}]}},"_links":{"self":[{"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/posts\/859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/comments?post=859"}],"version-history":[{"count":1,"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/posts\/859\/revisions"}],"predecessor-version":[{"id":866,"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/posts\/859\/revisions\/866"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/media\/865"}],"wp:attachment":[{"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/media?parent=859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/categories?post=859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itsonix.eu\/de\/wp-json\/wp\/v2\/tags?post=859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}