CINXE.COM
IoT Archives - ObjectBox
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <link rel="pingback" href="https://objectbox.io/wordpress/xmlrpc.php" /> <script type="text/javascript"> document.documentElement.className = 'js'; </script> <meta name='robots' content='noindex, follow' /> <!-- Preload key fonts to reduce CLS --> <link rel="preload" href="https://objectbox.io/wordpress/wp-content/themes/Divi/fonts/ETmodules_v4.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2" as="font" type="font/woff2" crossorigin> <!-- This site is optimized with the Yoast SEO plugin v23.7 - https://yoast.com/wordpress/plugins/seo/ --> <title>IoT Archives - ObjectBox</title> <meta name="description" content="ObjectBox empowers edge computing with a data storage and synchronization solution. Read more about the IoT use cases across industries." /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="IoT Archives - ObjectBox" /> <meta property="og:description" content="ObjectBox empowers edge computing with a data storage and synchronization solution. Read more about the IoT use cases across industries." /> <meta property="og:url" content="https://objectbox.io/category/iot/" /> <meta property="og:site_name" content="ObjectBox" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@objectbox_io" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://objectbox.io/category/iot/","url":"https://objectbox.io/category/iot/","name":"IoT Archives - ObjectBox","isPartOf":{"@id":"https://objectbox.io/#website"},"primaryImageOfPage":{"@id":"https://objectbox.io/category/iot/#primaryimage"},"image":{"@id":"https://objectbox.io/category/iot/#primaryimage"},"thumbnailUrl":"https://objectbox.io/wordpress/wp-content/uploads/2025/02/EdgeAIForRetail2025.jpg","description":"ObjectBox empowers edge computing with a data storage and synchronization solution. Read more about the IoT use cases across industries.","breadcrumb":{"@id":"https://objectbox.io/category/iot/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://objectbox.io/category/iot/#primaryimage","url":"https://objectbox.io/wordpress/wp-content/uploads/2025/02/EdgeAIForRetail2025.jpg","contentUrl":"https://objectbox.io/wordpress/wp-content/uploads/2025/02/EdgeAIForRetail2025.jpg","width":2000,"height":1158,"caption":"EdgeAIForRetail2025"},{"@type":"BreadcrumbList","@id":"https://objectbox.io/category/iot/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"ObjectBox","item":"https://objectbox.io/"},{"@type":"ListItem","position":2,"name":"IoT"}]},{"@type":"WebSite","@id":"https://objectbox.io/#website","url":"https://objectbox.io/","name":"ObjectBox","description":"Fast on-Device database with vector search for Mobile, IoT & other embedded device","publisher":{"@id":"https://objectbox.io/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://objectbox.io/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://objectbox.io/#organization","name":"ObjectBox","url":"https://objectbox.io/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://objectbox.io/#/schema/logo/image/","url":"https://objectbox.io/wordpress/wp-content/uploads/2021/06/objectbox-logo.png","contentUrl":"https://objectbox.io/wordpress/wp-content/uploads/2021/06/objectbox-logo.png","width":559,"height":186,"caption":"ObjectBox"},"image":{"@id":"https://objectbox.io/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/objectboxTeam/","https://x.com/objectbox_io","https://www.instagram.com/objectbox_io/","https://www.linkedin.com/company/objectbox","https://www.youtube.com/channel/UCLs3F3Lhh8pjC66WZIopJ6Q"]}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//js.hs-scripts.com' /> <link rel="alternate" type="application/rss+xml" title="ObjectBox » Feed" href="https://objectbox.io/feed/" /> <link rel="alternate" type="application/rss+xml" title="ObjectBox » Comments Feed" href="https://objectbox.io/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="ObjectBox » IoT Category Feed" href="https://objectbox.io/category/iot/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/objectbox.io\/wordpress\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.5.5"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <meta content="ObjectBox Divi v.1.0.1" name="generator"/><link rel='stylesheet' id='validate-engine-css-css' href='https://objectbox.io/wordpress/wp-content/plugins/wysija-newsletters/css/validationEngine.jquery.css?ver=2.22' type='text/css' media='all' /> <link rel='stylesheet' id='crayon-theme-objectbox-dark-css' href='https://objectbox.io/wordpress/wp-content/uploads/urvanov-syntax-highlighter/themes/objectbox-dark/objectbox-dark.css?ver=2.8.34' type='text/css' media='all' /> <link rel='stylesheet' id='crayon-font-monospace-css' href='https://objectbox.io/wordpress/wp-content/plugins/urvanov-syntax-highlighter/fonts/monospace.css?ver=2.8.34' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://objectbox.io/wordpress/wp-includes/css/dist/block-library/style.min.css?ver=6.5.5' type='text/css' media='all' /> <style id='wp-block-library-theme-inline-css' type='text/css'> .wp-block-audio figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio figcaption{color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed figcaption{color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}.wp-block-image figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-image figcaption{color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote.has-text-align-right{border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote.has-text-align-center{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote.is-style-plain{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table figcaption{color:#ffffffa6}.wp-block-video figcaption{color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video figcaption{color:#ffffffa6}.wp-block-video{margin:0 0 1em}.wp-block-template-part.has-background{margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <style id='global-styles-inline-css' type='text/css'> body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-family--inter: "Inter", sans-serif;--wp--preset--font-family--cardo: Cardo;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}body { margin: 0;--wp--style--global--content-size: 823px;--wp--style--global--wide-size: 1080px; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}a:where(:not(.wp-element-button)){text-decoration: underline;}.wp-element-button, .wp-block-button__link{background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;line-height: inherit;padding: calc(0.667em + 2px) calc(1.333em + 2px);text-decoration: none;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-cardo-font-family{font-family: var(--wp--preset--font-family--cardo) !important;} .wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} .wp-block-pullquote{font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='cookie-notice-front-css' href='https://objectbox.io/wordpress/wp-content/plugins/cookie-notice/css/front.min.css?ver=2.4.18' type='text/css' media='all' /> <link rel='stylesheet' id='dvmd-tm-public-module-style-css' href='https://objectbox.io/wordpress/wp-content/plugins/divi-modules-table-maker/extensions/styles/public-module-style.css?ver=3.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='woocommerce-layout-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/css/woocommerce-layout.css?ver=9.3.3' type='text/css' media='all' /> <link rel='stylesheet' id='woocommerce-smallscreen-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/css/woocommerce-smallscreen.css?ver=9.3.3' type='text/css' media='only screen and (max-width: 768px)' /> <link rel='stylesheet' id='woocommerce-general-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/css/woocommerce.css?ver=9.3.3' type='text/css' media='all' /> <style id='woocommerce-inline-inline-css' type='text/css'> .woocommerce form .form-row .required { visibility: visible; } </style> <link rel='stylesheet' id='divi-torque-lite-modules-style-css' href='https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/css/modules-style.css?ver=4.0.5' type='text/css' media='all' /> <link rel='stylesheet' id='divi-torque-lite-magnific-popup-css' href='https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/libs/magnific-popup/magnific-popup.min.css?ver=4.0.5' type='text/css' media='all' /> <link rel='stylesheet' id='divi-torque-lite-frontend-css' href='https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/css/frontend.css?ver=4.0.5' type='text/css' media='all' /> <link rel='stylesheet' id='divi-modules-table-maker-styles-css' href='https://objectbox.io/wordpress/wp-content/plugins/divi-modules-table-maker/extensions/divi-4/styles/style.min.css?ver=3.1.2' type='text/css' media='all' /> <link rel='stylesheet' id='divi-style-parent-css' href='https://objectbox.io/wordpress/wp-content/themes/Divi/style-static.min.css?ver=4.22.0' type='text/css' media='all' /> <link rel='stylesheet' id='divi-style-css' href='https://objectbox.io/wordpress/wp-content/themes/obx-divi-child/style.css?ver=4.22.0' type='text/css' media='all' /> <style id='divi-style-inline-css' type='text/css'> picture#logo { display: inherit; } picture#logo source, picture#logo img { width: auto; max-height: 45%; vertical-align: middle; } @media (min-width: 981px) { .et_vertical_nav #main-header picture#logo source, .et_vertical_nav #main-header picture#logo img { margin-bottom: 28px; } } </style> <link rel='stylesheet' id='select2-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/css/select2.css?ver=9.3.3' type='text/css' media='all' /> <script type="text/javascript" id="cookie-notice-front-js-before"> /* <![CDATA[ */ var cnArgs = {"ajaxUrl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","nonce":"7169c2b136","hideEffect":"none","position":"top","onScroll":true,"onScrollOffset":500,"onClick":true,"cookieName":"cookie_notice_accepted","cookieTime":31536000,"cookieTimeRejected":2592000,"globalCookie":false,"redirection":false,"cache":true,"revokeCookies":false,"revokeCookiesOpt":"automatic"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/cookie-notice/js/front.min.js?ver=2.4.18" id="cookie-notice-front-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.7.0-wc.9.3.3" id="jquery-blockui-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" id="wc-add-to-cart-js-extra"> /* <![CDATA[ */ var wc_add_to_cart_params = {"ajax_url":"\/wordpress\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_view_cart":"View cart","cart_url":"https:\/\/objectbox.io\/?page_id=37328","is_cart":"","cart_redirect_after_add":"no"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart.min.js?ver=9.3.3" id="wc-add-to-cart-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/js-cookie/js.cookie.min.js?ver=2.1.4-wc.9.3.3" id="js-cookie-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" id="woocommerce-js-extra"> /* <![CDATA[ */ var woocommerce_params = {"ajax_url":"\/wordpress\/wp-admin\/admin-ajax.php","wc_ajax_url":"\/?wc-ajax=%%endpoint%%"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=9.3.3" id="woocommerce-js" defer="defer" data-wp-strategy="defer"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/selectWoo/selectWoo.full.min.js?ver=1.0.9-wc.9.3.3" id="selectWoo-js" defer="defer" data-wp-strategy="defer"></script> <link rel="https://api.w.org/" href="https://objectbox.io/wp-json/" /><link rel="alternate" type="application/json" href="https://objectbox.io/wp-json/wp/v2/categories/102" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://objectbox.io/wordpress/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.5.5" /> <meta name="generator" content="WooCommerce 9.3.3" /> <style>.dbcs-clipboard-button { position: absolute; right: 1em; margin-top: 0.7em; font-family: 'ETmodules' !important; font-size: 16pt; opacity: 0.4; cursor: pointer; } .dbcs-clipboard-button:before { content: '\69'; } .dbcs-clipboard-button:hover { opacity: 1; } .dbcs-clipboard-button.dbcs-copied-to-clipboard { color: green; opacity: 1; } .dbcs-clipboard-button.dbcs-copied-to-clipboard:before { content: '\4e'; } .dbcs-clipboard-enabled .hljs-table td.hljs-line { padding-right: 55px; } .dbcs-clipboard-enabled .dbcs-clipboard-button { opacity: 1; background: rgba(240, 240, 240, 0.9) !important; padding: 7px; right: 0.35em; margin-top: 0.35em; border-radius: 4px } .dbcs-clipboard-enabled .dbcs-clipboard-button:before { opacity: 0.8; } .dbcs-clipboard-enabled .dbcs-clipboard-button:hover:before { opacity: 1; }</style><style> .et_pb_dmb_code_snippet pre code:before, #et_builder_outer_content .et_pb_dmb_code_snippet pre code:before{ font-family: monospace; } .et_pb_dmb_code_snippet pre code table.hljs-table td.hljs-line-number, #et_builder_outer_content .et_pb_dmb_code_snippet pre code table.hljs-table td.hljs-line-number { user-select: none; text-align: right; white-space: nowrap; vertical-align: top; } .et_pb_dmb_code_snippet pre code:not(.show_linenums) table.hljs-table td.hljs-line-number, #et_builder_outer_content .et_pb_dmb_code_snippet pre code:not(.show_linenums) table.hljs-table td.hljs-line-number, .et_pb_dmb_code_snippet pre code:not(.show_linenums) table.hljs-table col.hljs-line-numbers, #et_builder_outer_content .et_pb_dmb_code_snippet pre code:not(.show_linenums) table.hljs-table col.hljs-line-numbers { display: none; } </style> <style> .et_pb_dmb_code_snippet code.dbcs-wrap-lines .hljs-line * { white-space: pre-wrap; overflow-wrap: anywhere; } </style> <style> .et_pb_dmb_code_snippet { visibility: hidden; } </style> <!-- DO NOT COPY THIS SNIPPET! Start of Page Analytics Tracking for HubSpot WordPress plugin v11.1.66--> <script class="hsq-set-content-id" data-content-id="listing-page"> var _hsq = _hsq || []; _hsq.push(["setContentType", "listing-page"]); </script> <!-- DO NOT COPY THIS SNIPPET! End of Page Analytics Tracking for HubSpot WordPress plugin --> <script type="text/javascript"> (function(url){ if(/(?:Chrome\/26\.0\.1410\.63 Safari\/537\.31|WordfenceTestMonBot)/.test(navigator.userAgent)){ return; } var addEvent = function(evt, handler) { if (window.addEventListener) { document.addEventListener(evt, handler, false); } else if (window.attachEvent) { document.attachEvent('on' + evt, handler); } }; var removeEvent = function(evt, handler) { if (window.removeEventListener) { document.removeEventListener(evt, handler, false); } else if (window.detachEvent) { document.detachEvent('on' + evt, handler); } }; var evts = 'contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop keydown keypress keyup mousedown mousemove mouseout mouseover mouseup mousewheel scroll'.split(' '); var logHuman = function() { if (window.wfLogHumanRan) { return; } window.wfLogHumanRan = true; var wfscr = document.createElement('script'); wfscr.type = 'text/javascript'; wfscr.async = true; wfscr.src = url + '&r=' + Math.random(); (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(wfscr); for (var i = 0; i < evts.length; i++) { removeEvent(evts[i], logHuman); } }; for (var i = 0; i < evts.length; i++) { addEvent(evts[i], logHuman); } })('//objectbox.io/?wordfence_lh=1&hid=20F87D6EB19EF64B4C37DD6B53D2E18A'); </script><script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Blog", "name": "ObjectBox Blog", "url": "https://objectbox.io/why-edge-ai-is-crucial-for-retail-and-pos-systems-in-2025/", "description": "Technical articles and updates about ObjectBox database", "publisher": { "@type": "Organization", "name": "ObjectBox", "logo": { "@type": "ImageObject", "url": "https://objectbox.io/wp-content/uploads/2023/01/objectbox-logo.png" } }, "keywords": "vector database, edge computing, mobile database, embedded database, NoSQL, data sync, on-device AI, edge AI, privacy-first, small language models" }</script><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /><style type="text/css" id="tve_global_variables">:root{--tcb-color-0:rgb(125, 220, 125);--tcb-color-0-h:120;--tcb-color-0-s:57%;--tcb-color-0-l:67%;--tcb-color-0-a:1;--tcb-gradient-0:linear-gradient(54deg, rgb(230, 25, 85) 0%, rgb(245, 150, 45) 64%, rgb(249, 229, 5) 100%, var(--tcb-color-0) 100%);--tcb-background-author-image:url(https://secure.gravatar.com/avatar/f5b9dacdc7f63c622a4d6ac2833705b8?s=256&d=mm&r=g);--tcb-background-user-image:url();--tcb-background-featured-image-thumbnail:url(https://objectbox.io/wordpress/wp-content/uploads/2025/02/EdgeAIForRetail2025.jpg);}</style> <noscript><style>.woocommerce-product-gallery{ opacity: 1 !important; }</style></noscript> <style type="text/css" id="custom-background-css"> body.custom-background { background-color: #f7f7f7; } </style> <script id='nitro-telemetry-meta' nitro-exclude>window.NPTelemetryMetadata={missReason: (!window.NITROPACK_STATE ? 'request type not allowed' : 'hit'),pageType: 'category',isEligibleForOptimization: false,}</script><script id='nitro-generic' nitro-exclude>(()=>{window.NitroPack=window.NitroPack||{coreVersion:"na",isCounted:!1};let e=document.createElement("script");if(e.src="https://nitroscripts.com/JNiKLBzGPsfbQJqUQoZqIbUrxBklWopT",e.async=!0,e.id="nitro-script",document.head.appendChild(e),!window.NitroPack.isCounted){window.NitroPack.isCounted=!0;let t=()=>{navigator.sendBeacon("https://to.getnitropack.com/p",JSON.stringify({siteId:"JNiKLBzGPsfbQJqUQoZqIbUrxBklWopT",url:window.location.href,isOptimized:!!window.IS_NITROPACK,coreVersion:"na",missReason:window.NPTelemetryMetadata?.missReason||"",pageType:window.NPTelemetryMetadata?.pageType||"",isEligibleForOptimization:!!window.NPTelemetryMetadata?.isEligibleForOptimization}))};(()=>{let e=()=>new Promise(e=>{"complete"===document.readyState?e():window.addEventListener("load",e)}),i=()=>new Promise(e=>{document.prerendering?document.addEventListener("prerenderingchange",e,{once:!0}):e()}),a=async()=>{await i(),await e(),t()};a()})(),window.addEventListener("pageshow",e=>{if(e.persisted){let i=document.prerendering||self.performance?.getEntriesByType?.("navigation")[0]?.activationStart>0;"visible"!==document.visibilityState||i||t()}})}})();</script><!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-68353717-3"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-68353717-3'); gtag('config', 'G-PNBER16ZJB'); </script> <!-- GitHub Buttons. --> <!-- <script async defer src="https://buttons.github.io/buttons.js"></script> --> <style id='wp-fonts-local' type='text/css'> @font-face{font-family:Inter;font-style:normal;font-weight:300 900;font-display:fallback;src:url('https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/fonts/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-stretch:normal;} @font-face{font-family:Cardo;font-style:normal;font-weight:400;font-display:fallback;src:url('https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/fonts/cardo_normal_400.woff2') format('woff2');} </style> <style type="text/css" id="thrive-default-styles"></style><link rel="icon" href="https://objectbox.io/wordpress/wp-content/uploads/2022/11/cropped-OB-square-transparent-logo-teal-48x48-1-32x32.png" sizes="32x32" /> <link rel="icon" href="https://objectbox.io/wordpress/wp-content/uploads/2022/11/cropped-OB-square-transparent-logo-teal-48x48-1-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://objectbox.io/wordpress/wp-content/uploads/2022/11/cropped-OB-square-transparent-logo-teal-48x48-1-180x180.png" /> <meta name="msapplication-TileImage" content="https://objectbox.io/wordpress/wp-content/uploads/2022/11/cropped-OB-square-transparent-logo-teal-48x48-1-270x270.png" /> <style id="objectbox-cls-fixes"> /* Fix for layout shifts in Divi */ .et_pb_section { overflow: visible !important; } /* Set min-height for sections that might cause shifts */ .et_pb_fullwidth_header, .et_pb_slider, .et_pb_fullwidth_slider { min-height: 200px; } /* Prevent shifts from images without dimensions */ img { max-width: 100%; height: auto; } /* Fix for Divi menu shifts */ .et_pb_menu__logo-wrap, .et_pb_menu__logo { width: auto !important; min-width: 100px; } /* Fix for mobile menu toggle shifts */ .et_pb_menu__icon { transition: none !important; } /* Fix for Divi sliders causing shifts */ .et_pb_slider .et_pb_slide { opacity: 0; transition: opacity 0.3s ease-in-out; } .et_pb_slider .et_pb_slide.et-pb-active-slide { opacity: 1; } /* Fix for Divi animations causing layout shifts */ .et-waypoint:not(.et_pb_animation_off) { opacity: 1 !important; transform: none !important; } /* Prevent layout shifts from dynamically loaded content */ .et_pb_ajax_pagination_container, .et_pb_blog_grid { min-height: 200px; } /* Fix for Divi tabs causing layout shifts */ .et_pb_tabs_controls li { height: auto !important; } /* Fix for Divi accordions causing layout shifts */ .et_pb_toggle_content { display: none; padding-top: 0 !important; padding-bottom: 0 !important; } .et_pb_toggle_open .et_pb_toggle_content { display: block; } /* Fix for Divi testimonials causing layout shifts */ .et_pb_testimonial { min-height: 150px; } /* Fix for Divi counters causing layout shifts */ .et_pb_number_counter .percent { height: auto !important; } /* Fix for Divi pricing tables causing layout shifts */ .et_pb_pricing_table { min-height: 300px; } </style> <link rel="stylesheet" id="et-divi-customizer-global-cached-inline-styles" href="https://objectbox.io/wordpress/wp-content/et-cache/global/et-divi-customizer-global.min.css?ver=1743692018" /></head> <body class="archive category category-iot category-102 custom-background theme-Divi et-tb-has-template et-tb-has-header cookies-not-set woocommerce-no-js et_button_no_icon et_pb_button_helper_class et_pb_footer_columns3 et_cover_background windows et_pb_gutters3 et_right_sidebar et_divi_theme et-db"> <div id="page-container"> <div id="et-boc" class="et-boc"> <header class="et-l et-l--header"> <div class="et_builder_inner_content et_pb_gutters3"><div class="et_pb_with_border et_pb_section et_pb_section_0_tb_header et_pb_sticky_module et_pb_with_background et_section_regular et_pb_section--with-menu" > <div class="et_pb_row et_pb_row_0_tb_header et_pb_row--with-menu"> <div class="et_pb_column et_pb_column_3_4 et_pb_column_0_tb_header et_pb_css_mix_blend_mode_passthrough et_pb_column--with-menu"> <div class="et_pb_module et_pb_code et_pb_code_0_tb_header"> <div class="et_pb_code_inner"><style> .dfh-2 .et_mobile_menu li:not(:last-child) a, .dfh-2 .nav li li:not(:last-child), .dfh-2 .et-menu-nav li.mega-menu>ul>li>a:first-child, .dfh-2 .et-menu-nav li.mega-menu ul li ul li:not(:last-child) a { border-bottom: 1px solid rgb(255,255,255,0.2) !important; } @media screen and (min-width: 981px) { .dfh-2 .sub-menu:before { color: #ffffff; } } </style></div> </div><div class="et_pb_module et_pb_code et_pb_code_1_tb_header"> <div class="et_pb_code_inner"><script> (function($) { function dfh_collapse_menu() { var ParentMenuItem = $('.dfh-2 .et_mobile_menu .menu-item-has-children > a'); ParentMenuItem.off('click').click(function() { $(this).attr('href', '#/'); $(this).parent().children().children().toggleClass('dfh-show-menu-items'); $(this).toggleClass('dfh-menu-switched-icon'); }); } $(window).load(function() { setTimeout(function() { dfh_collapse_menu(); }, 700); }); })(jQuery); </script> <style> .dfh-2 .et_mobile_menu .menu-item-has-children > a:after { content: '\50'; display: block !important; font-family: 'ETmodules'; font-size: 16px; font-weight: normal; position: absolute; right: 10px; top: 13px; } .dfh-2 .et_mobile_menu .menu-item-has-children > .dfh-menu-switched-icon:after { content: '\4f'; } .dfh-2 .et_mobile_menu .menu-item-has-children > a { position: relative; } .dfh-2 .et_mobile_menu .menu-item-has-children .sub-menu li { display: none; } .dfh-2 .et_mobile_menu .menu-item-has-children .sub-menu .dfh-show-menu-items { display: block; } .dfh-2 .nav li li { padding: 0 !important; } .dfh-2 .et_pb_menu .et_mobile_menu, .dfh-2 .et_mobile_menu { padding: 0 !important; border-width: 2px; border-radius: 5px; } .dfh-2 .et_pb_menu .et_mobile_menu a, .dfh-2 .et_mobile_menu a { padding: 12px 20px !important; } .dfh-2.et_pb_menu .et-menu-nav li.mega-menu ul.sub-menu { border-width: 2px !important; border-radius: 5px !important; padding: 10px 20px !important; width: 100% !important; } .dfh-2 .nav li.mega-menu li { border-bottom: none !important; } .et-db #et-boc .et-l .dfh-2 .et-menu-nav li.mega-menu li>a { width: 140px !important; } .dfh-2.et_pb_menu .et-menu-nav li.mega-menu ul.sub-menu a { padding: 12px 0 !important; } @media screen and (min-width: 981px) { .dfh-2 .et-menu > .menu-item-has-children > .sub-menu:before { font-family: ETmodules; content: '\42'; position: absolute; right: 20px; top: -17px; font-size: 30px; } .dfh-2 .et-menu > .menu-item-has-children.mega-menu > .sub-menu:before { content: ''; } .dfh-2 .et-menu .sub-menu .menu-item-has-children>a:first-child:after { content: "\35" !important; } .et-db #et-boc .et-l .dfh-2.et_pb_menu .et-menu-nav li ul.sub-menu li ul.sub-menu { left: 200px !important; top: 0; } .et-db #et-boc .et-l .dfh-2.et_pb_menu .et-menu-nav li.mega-menu ul.sub-menu li ul.sub-menu { left: 0 !important; padding: 0 !important; } } @media screen and (max-width: 980px) { .dfh-2 .et_pb_menu__wrap { margin-top: -8px; } } </style></div> </div><div class="et_pb_with_border et_pb_module et_pb_menu et_pb_menu_0_tb_header dfh-2 et_pb_bg_layout_light et_pb_text_align_left et_dropdown_animation_fade et_pb_menu--with-logo et_pb_menu--style-left_aligned"> <div class="et_pb_menu_inner_container clearfix"> <div class="et_pb_menu__logo-wrap"> <div class="et_pb_menu__logo"> <a href="https://objectbox.io/" ><img decoding="async" width="500" height="120" src="https://objectbox.io/wordpress/wp-content/uploads/2024/09/logo-white-500pxf.png" alt="" class="wp-image-259569" data-et-multi-view="{"schema":{"attrs":{"desktop":{"src":"https:\/\/objectbox.io\/wordpress\/wp-content\/uploads\/2024\/09\/logo-white-500pxf.png","alt":"","class":"wp-image-259569"},"tablet":{"src":"https:\/\/objectbox.io\/wordpress\/wp-content\/uploads\/2021\/01\/logo-white-500px-300x72.png"}}},"slug":"et_pb_menu","hover_selector":".et_pb_menu_0_tb_header .et_pb_menu__logo-wrap .et_pb_menu__logo img"}" /></a> </div> </div> <div class="et_pb_menu__wrap"> <div class="et_pb_menu__menu"> <nav class="et-menu-nav"><ul id="menu-main-menu" class="et-menu nav"><li class="first-level et_pb_menu_page_id-35279 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-35279"><a>Product</a> <ul class="sub-menu"> <li class="et_pb_menu_page_id-257334 menu-item menu-item-type-post_type menu-item-object-page menu-item-257919"><a href="https://objectbox.io/vector-database-for-ondevice-ai/">The vector database for on-device AI</a></li> <li class="second-level et_pb_menu_page_id-33019 menu-item menu-item-type-post_type menu-item-object-page menu-item-33433"><a href="https://objectbox.io/sync/">Data Sync</a></li> <li class="second-level et_pb_menu_page_id-223067 menu-item menu-item-type-post_type menu-item-object-page menu-item-223155"><a title="Embedded Database for Embedded Devices" href="https://objectbox.io/embedded-database/">Embedded Database</a></li> <li class="second-level et_pb_menu_page_id-35148 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-35277"><a href="https://objectbox.io/mobile-database/">Mobile Database</a> <ul class="sub-menu"> <li class="et_pb_menu_page_id-222066 menu-item menu-item-type-post_type menu-item-object-page menu-item-222378"><a href="https://objectbox.io/swift-database-for-ios/">Swift Database for iOS</a></li> <li class="et_pb_menu_page_id-223156 menu-item menu-item-type-post_type menu-item-object-page menu-item-223274"><a title="Android Database" href="https://objectbox.io/android-database/">Android Database</a></li> <li class="et_pb_menu_page_id-223479 menu-item menu-item-type-post_type menu-item-object-page menu-item-223868"><a href="https://objectbox.io/flutter-database/">Flutter Database</a></li> </ul> </li> <li class="et_pb_menu_page_id-258495 menu-item menu-item-type-post_type menu-item-object-page menu-item-258707"><a href="https://objectbox.io/time-series-database/">Time Series DB</a></li> <li class="second-level et_pb_menu_page_id-34014 menu-item menu-item-type-post_type menu-item-object-page menu-item-34399"><a href="https://objectbox.io/iot-edge-computing-database-decentralized-data-flows/">IoT DB for the edge</a></li> <li class="second-level et_pb_menu_page_id-35961 menu-item menu-item-type-post_type menu-item-object-page menu-item-41668"><a href="https://objectbox.io/edgex/">ObjectBox EdgeX</a></li> </ul> </li> <li class="first-level et_pb_menu_page_id-39185 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-39185"><a>Solutions</a> <ul class="sub-menu"> <li class="second-level et_pb_menu_page_id-260370 menu-item menu-item-type-post_type menu-item-object-page menu-item-260694"><a href="https://objectbox.io/connected-car-data-storage-and-sync/">Connected Cars</a></li> <li class="second-level et_pb_menu_page_id-38910 menu-item menu-item-type-post_type menu-item-object-page menu-item-39178"><a href="https://objectbox.io/iiot-edge-computing/">Industrial IoT</a></li> <li class="second-level et_pb_menu_page_id-49453 menu-item menu-item-type-post_type menu-item-object-page menu-item-49867"><a href="https://objectbox.io/energy-edge-computing/">Energy Industry</a></li> <li class="second-level et_pb_menu_page_id-38644 menu-item menu-item-type-post_type menu-item-object-page menu-item-39005"><a href="https://objectbox.io/smart-mobility/">Smart Mobility</a></li> <li class="second-level et_pb_menu_page_id-46718 menu-item menu-item-type-post_type menu-item-object-page menu-item-48012"><a href="https://objectbox.io/retail-edge-computing/">Retail Services</a></li> <li class="second-level et_pb_menu_page_id-50045 menu-item menu-item-type-post_type menu-item-object-page menu-item-50291"><a href="https://objectbox.io/games/">Games</a></li> <li class="second-level et_pb_menu_page_id-34759 menu-item menu-item-type-post_type menu-item-object-page menu-item-35893"><a href="https://objectbox.io/iot-edge-computing-database-decentralized-data-flows/iot-use-cases-edge-computing/">IoT Use Cases</a></li> </ul> </li> <li class="first-level et_pb_menu_page_id-28602 menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-28602"><a>Developers</a> <ul class="sub-menu"> <li class="second-level et_pb_menu_page_id-35049 menu-item menu-item-type-post_type menu-item-object-page menu-item-35212"><a href="https://objectbox.io/offline-first-mobile-database/">Overview</a></li> <li class="second-level et_pb_menu_page_id-53043 menu-item menu-item-type-custom menu-item-object-custom menu-item-53043"><a href="https://sync.objectbox.io/">Sync Docs</a></li> <li class="second-level et_pb_menu_page_id-35273 menu-item menu-item-type-custom menu-item-object-custom menu-item-35273"><a href="https://docs.objectbox.io/">Java Docs</a></li> <li class="second-level et_pb_menu_page_id-35275 menu-item menu-item-type-custom menu-item-object-custom menu-item-35275"><a href="https://cpp.objectbox.io/">C / C++ Docs</a></li> <li class="second-level et_pb_menu_page_id-35364 menu-item menu-item-type-custom menu-item-object-custom menu-item-35364"><a href="https://golang.objectbox.io/">Go Docs</a></li> <li class="second-level et_pb_menu_page_id-35281 menu-item menu-item-type-custom menu-item-object-custom menu-item-35281"><a href="https://docs.objectbox.io/kotlin-support">Kotlin Docs</a></li> <li class="second-level et_pb_menu_page_id-35274 menu-item menu-item-type-custom menu-item-object-custom menu-item-35274"><a href="https://swift.objectbox.io/">Swift Docs</a></li> <li class="second-level et_pb_menu_page_id-50071 menu-item menu-item-type-custom menu-item-object-custom menu-item-50071"><a href="https://github.com/objectbox/objectbox-dart">Flutter / Dart</a></li> <li class="second-level et_pb_menu_page_id-50463 menu-item menu-item-type-post_type menu-item-object-page menu-item-50484"><a href="https://objectbox.io/offline-docs-pdf-download/">Offline Docs / PDF Download</a></li> <li class="second-level et_pb_menu_page_id-30804 menu-item menu-item-type-post_type menu-item-object-page menu-item-30829"><a href="https://objectbox.io/faq/">FAQ</a></li> </ul> </li> <li class="first-level et_pb_menu_page_id-33340 menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-33736"><a href="https://objectbox.io/about-us/">Company</a> <ul class="sub-menu"> <li class="second-level et_pb_menu_page_id-33340 menu-item menu-item-type-post_type menu-item-object-page menu-item-33737"><a href="https://objectbox.io/about-us/">About Us</a></li> <li class="second-level et_pb_menu_page_id-32135 menu-item menu-item-type-post_type menu-item-object-page menu-item-32157"><a href="https://objectbox.io/jobs/">Jobs</a></li> <li class="second-level et_pb_menu_page_id-35211 menu-item menu-item-type-post_type menu-item-object-page menu-item-35268"><a href="https://objectbox.io/events/">Events</a></li> <li class="second-level et_pb_menu_page_id-35703 menu-item menu-item-type-post_type menu-item-object-page menu-item-35730"><a href="https://objectbox.io/iot-mobile-insights-learnings-research-studies/">Insights</a></li> <li class="et_pb_menu_page_id-50886 menu-item menu-item-type-post_type menu-item-object-page menu-item-223175"><a href="https://objectbox.io/software-we-love/">Software we 🤍</a></li> <li class="et_pb_menu_page_id-257704 menu-item menu-item-type-post_type menu-item-object-page menu-item-257890"><a href="https://objectbox.io/contact-us/">Contact us</a></li> </ul> </li> <li class="first-level et_pb_menu_page_id-31231 menu-item menu-item-type-post_type menu-item-object-page menu-item-31319"><a href="https://objectbox.io/blog/">Blog</a></li> <li class="et_pb_menu_page_id-259820 menu-item menu-item-type-post_type menu-item-object-page menu-item-260029"><a href="https://objectbox.io/mongodb/"><font color="#17A6A6">MongoDB Connector</font></a></li> </ul></nav> </div> <div class="et_mobile_nav_menu"> <div class="mobile_nav closed"> <span class="mobile_menu_bar"></span> </div> </div> </div> </div> </div> </div><div class="et_pb_column et_pb_column_1_4 et_pb_column_1_tb_header et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_button_module_wrapper et_pb_button_0_tb_header_wrapper et_pb_button_alignment_center et_pb_module "> <a class="et_pb_button et_pb_button_0_tb_header et_pb_bg_layout_dark" href="https://github.com/objectbox/" target="_blank" data-icon="">45.8k</a> </div><div class="et_pb_button_module_wrapper et_pb_button_1_tb_header_wrapper et_pb_button_alignment_center et_pb_module "> <a class="et_pb_button et_pb_button_1_tb_header et_pb_bg_layout_dark" href="https://objectbox.io/offline-first-mobile-database/">Get started</a> </div> </div> </div> </div> </div> </header> <div id="et-main-area"> <div id="main-content"> <div class="container"> <div id="content-area" class="clearfix"> <div id="left-area"> <article id="post-261404" class="et_pb_post post-261404 post type-post status-publish format-standard has-post-thumbnail hentry category-ai category-edge-ai category-edge-computing category-edge-database category-iot category-mobile-database category-vector-database tag-edge-ai tag-edge-computing tag-pos tag-retail"> <a class="entry-featured-image-url" href="https://objectbox.io/why-edge-ai-is-crucial-for-retail-and-pos-systems-in-2025/"> <img src="https://objectbox.io/wordpress/wp-content/uploads/2025/02/EdgeAIForRetail2025-1080x675.jpg" alt="Why Edge AI is crucial for retail and POS systems in 2025" class="" width="1080" height="675" /> </a> <h2 class="entry-title"><a href="https://objectbox.io/why-edge-ai-is-crucial-for-retail-and-pos-systems-in-2025/">Why Edge AI is crucial for retail and POS systems in 2025</a></h2> <p class="post-meta"> by <span class="author vcard"><a href="https://objectbox.io/author/vivien/" title="Posts by Vivien" rel="author">Vivien</a></span> | <span class="published">Feb 19, 2025</span> | <a href="https://objectbox.io/category/ai/" rel="category tag">AI</a>, <a href="https://objectbox.io/category/edge-ai/" rel="category tag">Edge AI</a>, <a href="https://objectbox.io/category/edge-computing/" rel="category tag">Edge Computing</a>, <a href="https://objectbox.io/category/edge-database/" rel="category tag">Edge Database</a>, <a href="https://objectbox.io/category/iot/" rel="category tag">IoT</a>, <a href="https://objectbox.io/category/mobile-database/" rel="category tag">Mobile Database</a>, <a href="https://objectbox.io/category/vector-database/" rel="category tag">vector database</a></p><p><a href="https://www2.deloitte.com/us/en/insights/industry/retail-distribution/retail-distribution-industry-outlook.html">In recent years, the retail industry’s growth has been modest, with annual rates ranging from 1.5% to 3.5% depending on the sector</a>. Competition and rising consumer expectations for seamless omnichannel experiences have squeezed profit margins. With AI advancing so rapidly, there’s a great opportunity to embrace innovative solutions that boost efficiency and help create new revenue streams. Accordingly, <a href="https://business.comcast.com/community/docs/default-source/default-document-library/us51558524.pdf?sfvrsn=7fbf4754_1">IDC (2025) expects that by 2026, 90% of retail tools will embed AI algorithms</a>. Furthermore,<a href="https://business.comcast.com/community/docs/default-source/default-document-library/us51558524.pdf?sfvrsn=7fbf4754_1"> by 2027, over 45% of major retailers will apply Edge AI for faster decision-making and store-specific assortment planning, selection, allocation, and replenishment</a>. Let’s have a closer look at how retailers can leverage Edge AI no matter their size and budgets.</p><h2 class="wp-block-heading"><strong>Defining Edge AI in Retail Contexts</strong></h2><p><a href="https://objectbox.io/empowering-edge-ai-the-critical-role-of-databases/">Edge AI</a> refers to decentralized artificial intelligence systems that process data locally on in-store devices, e.g. POS terminals, smart shelves, Raspberry Pis, mobile phones, or cameras, rather than relying on distant cloud servers. This architecture works independently from distant cloud servers or internet connectivity, and therefore offline with minimized latency. Both, offline-capability and speed, are critical for applications like fraud detection and checkout automation. Accordingly, <a href="https://blogs.idc.com/2024/07/08/retail-reinvention-in-the-ai-era/">IDC emphasizes that 45% of retailers now prioritize “near-the-network” edge deployments</a>. There, AI models run locally on in-store servers or IoT devices, balancing cost and performance.</p><h2 class="wp-block-heading"><strong>Key Components of Edge AI Systems</strong></h2><p>For Edge AI to deliver real-time, offline-capable intelligence, its architecture must integrate <strong>on-device databases</strong>, <strong>local processing</strong>, and <strong>efficient data synchronization</strong>. These three pillars ensure seamless AI-powered retail operations without dependence on the cloud, minimizing latency, costs, and privacy concerns.</p><figure class="wp-block-image size-large"><img decoding="async" width="1024" height="551" src="https://objectbox.io/wordpress/wp-content/uploads/2025/02/Retail-EdgeAI-POS-Setup-1024x551.png" alt="Retail-EdgeAI-POS-Setup" class="wp-image-261416"/><figcaption class="wp-element-caption"><br>Edge AI system architecture in retail, integrating local processing, real-time data sync, and various applications like POS or signage</figcaption></figure><h4 class="wp-block-heading"><strong>1. Local Data Collection, <a href="https://objectbox.io/what-is-data-synchronization-how-to-keep-data-in-sync/">Sync</a>, and Storage</strong></h4><p>Retail generates vast real-time data from <strong>IoT sensors, POS transactions, smart cameras, and RFID tags</strong>. To ensure instant processing and uninterrupted availability you need:</p><ul><li><strong>On-device data storage</strong>: All kinds of devices from IoT sensors to cameras capture data. Depending on the device capabilities, with small on-device databases, data can be stored and used directly on the devices.</li> <li><strong>Local central server</strong>: A <strong>centralized on-premise device (e.g. a PC or Raspberry Pi, or more capable hw)</strong> ensures operations continue even if individual devices are resource-limited or offline.</li> <li><strong><a href="https://medium.com/@vivien_44789/a-developers-guide-to-bi-directional-data-sync-for-mobile-and-iot-apps-8254d8ff70dd">Bi-directional on-premise data sync</a></strong>: Local syncing between devices and with a central on-site server ensures better decisions and fail-safe operations. It keeps all devices up-to-date without internet dependence.</li></ul><h4 class="wp-block-heading"><strong>2. Local Data Processing & Real-Time AI Decision-Making</strong></h4><p>Processing data <strong>where it is generated</strong> is critical for <strong>speed, privacy, and resilience</strong>:</p><ul><li><strong>On-device AI models</strong>: Small, quantized AI models (<a href="https://objectbox.io/top-small-language-models-slms-and-their-power-with-local-vector-databases/">SLMs</a>) like Microsoft’s Phi-3-mini (3.8B parameters, <2GB memory footprint) can run directly on many devices (e.g. tablets, and POS systems), enabling real-time fraud detection, checkout automation, and personalized recommendations.</li> <li><strong>Local on-premise AI models</strong>: Larger SLMs or LLMs run on the more capable in-store hardware for security, demand forecasting, or store optimization. </li> <li><strong>On-device & on-premise vector databases</strong>: AI models leverage <a href="https://objectbox.io/vector-database-for-ondevice-ai/">on-device vector databases</a> to structure and index data for real-time AI-driven insights (e.g., fraud detection, smart inventory management), fast similarity searches, and real-time decision-making.</li></ul><h4 class="wp-block-heading"><strong>3. Hybrid Data Sync: <a href="https://objectbox.io/data-sync-alternatives-offline-vs-online-solutions/">Local First, Selective Cloud Sync</a></strong></h4><ul><li><strong>Selective Cloud Sync</strong>: Bi-directional cloud data sync extends the on-premise data sync. Select data, such as aggregated insights (e.g., sales trends, shrinkage patterns), payment processing, and select learnings are synced with the cloud to enable Enterprise-wide analytics & compliance, Remote monitoring & additional backup, and Optimized centralized decision-making.</li> <li><strong>Cloud Database & Backend Infrastructure</strong>: A cloud-based database acts as the global repository. It integrates data from multiple locations to store aggregated insights & long-term trends for AI model refinement and enterprise reporting, facilitating cross-location comparisons. </li> <li><strong>Centralized cloud AI model</strong>: A centralized cloud AI model is optional for larger setups. It can be used to continuously learn from local insights, refining AI recommendations and operational efficiencies across all connected stores.</li></ul><h2 class="wp-block-heading">Use Cases of Edge AI for Retailers</h2><p>Edge AI is unlocking new efficiencies for retailers by enabling real-time, offline-capable intelligence across customer engagement, marketing, in-store operations, and supply chains.</p><figure class="wp-block-image size-large"><img decoding="async" width="1024" height="687" src="https://objectbox.io/wordpress/wp-content/uploads/2025/02/image-1024x687.png" alt="" class="wp-image-261405"/><figcaption class="wp-element-caption">Key applications of Edge AI in retail, driving personalization, operational efficiency, and smarter decision-making.</figcaption></figure><h3 class="wp-block-heading">Enhancing Customer Experiences in Retail Stores with Edge AI – Examples</h3><p>Edge AI transforms the shopping experience, enabling retailers to offer more streamlined and more personalized services based on real-time data, thereby boosting customer satisfaction and sales. Key benefits include:</p><ul><li><strong>Realtime Product Recommendations</strong>: Using cognitive neural networks, retailers can respond instantly to a customer’s actions, such as browsing and purchasing, to recommend products that align with their preferences. An Accenture study found that <a href="https://www.accenture.com/us-en/insights/retail/reinventing-future-retail">75% of consumers wish they could identify options that meet their needs more quickly and easily.</a></li> <li><strong>In-store experience</strong>:<strong> </strong>AI tracks customer movement and analyses purchase patterns, optimizing store layout and product placement. <a href="https://www2.deloitte.com/content/dam/Deloitte/in/Documents/consumer-business/in-cb-future-of-retail-profitable-growth-through-technology-and-AI-noexp.pdf">A large global furniture retailer’s in-store analytics led to a more than 10 percent rise in in-store traffic and high sales growth within a month.</a></li> <li><strong>Contactless Checkout</strong>: AI-driven self-checkouts allow customers to select products captured by cameras. Thus, bypassing the need for scanning product codes, which streamlines both standard and automated checkout processes. For example, <a href="https://www.aboutamazon.com/news/retail/amazon-just-walk-out-improves-accuracy">Amazon’s Just Walk Out</a> technology allows customers to pick up items and leave the store without traditional checkout, enhancing convenience and reducing wait times. </li> <li><strong>Real-Time Inventory Tracking</strong>:<strong> </strong><a href="https://www2.deloitte.com/content/dam/Deloitte/in/Documents/consumer-business/in-cb-future-of-retail-profitable-growth-through-technology-and-AI-noexp.pdf">Smart shelves monitor inventory levels in real time, triggering automatic reorders and preventing stockouts</a>. For example, a <a href="https://www.researchgate.net/publication/357352415_A_Smart_Shelf_Design_for_Retail_Store_Real_Time_Inventory_Management_Automation">study</a> proposed a smart shelf design capable of detecting the location and weight of items, ensuring accurate inventory counts and timely replenishment.</li></ul><h3 class="wp-block-heading">Retail operational excellence and cost optimization with Edge AI – Examples</h3><p>Edge AI also significantly enhances operational efficiency, especially operational in-store efficiency, reduces losses, and helps lower costs (while at the same time <a href="https://objectbox.io/why-do-we-need-edge-computing-for-a-sustainable-future/">enhancing sustainability</a>):</p><ul><li><strong>Supply Chain Management</strong>: Edge AI enhances supply chain operations by decentralizing data processing, enabling real-time analysis and faster decision-making. This leads to optimized inventory levels, more accurate demand forecasting, and reduced operational costs. For example, Walmart’s pioneering use of GenAI in supply chain management has driven a <a href="https://www.thestack.technology/walmart-reveals-100x-productivity-boost-of-generative-ai/">100x productivity boost, enabling more accurate demand forecasting, optimized inventory, and reduced waste. As reported in its Q2 2025 earnings call, these improvements trimmed operational costs by 20%</a>.</li> <li><strong>Loss Prevention</strong>: Retail shrink, exacerbated by inflation-driven shoplifting and self-checkout vulnerabilities, <a href="https://solink.com/resources/organized-retail-theft/?_gl=1*q8ne50*_up*MQ..*_ga*MjEwNTI0MzE4Mi4xNzM5ODA2MDgz*_ga_M8Q41G0CVP*MTczOTgwNjA4Mi4xLjAuMTczOTgwNjA4Mi4wLjAuMA..">costs the industry over $100 billion annually</a>. Advanced sensors and intelligent cameras combined with Edge AI help detect early signs of theft or fraud. Thus, allowing security measures to intervene promptly, and independently from an internet connection. </li> <li><strong>Waste Reduction</strong>:<strong> </strong>Grocery chains like Tesco use Edge AI to analyze the expiry dates of goods and ripeness of produce, dynamically pricing items nearing expiration. <a href="https://nocamels.com/2022/09/supermarkets-use-ai-to-cut-prices/">This approach can reduce food waste by up to 40%</a>. Food waste is a huge social, economic, and environmental challenge. <a href="https://mediatum.ub.tum.de/doc/1735419/document.pdf">If it was considered as a country, would be the world’s third greatest emitter of greenhouse gases</a>. Edge AI in retail could play a pivotal role in food waste avoidance.</li> <li><strong>Energy Savings:</strong> Smart sensors and Edge AI can be used to optimize the use of energy for lighting, heating, ventilation, water use, etc. For example, 45 Broadway, a 32-story office building in Manhattan,<a href="https://time.com/7201501/ai-buildings-energy-efficiency"> implemented an AI system that analyzes real-time data</a>. That included temperature, humidity, sun angle, and occupancy patterns – to proactively adjust HVAC settings. This integration led to a 15.8% reduction in HVAC-related energy consumption. Plus, saving over $42,000 annually and reducing carbon emissions by 37 metric tons in just 11 months.</li></ul><h2 class="wp-block-heading">Conclusion: Edge AI as Retail’s Strategic Imperative</h2><p><a href="https://www.forbes.com/sites/garydrenik/2024/08/06/why-edge-ai-driven-personalization-is-the-key-to-customer-loyalty/">Edge AI is a true game-changer for retailers in 2025</a>. Faced with rising costs and fierce competition, stores need faster insights and better local experiences to stand out. Therefore, according to IDC, <a href="https://business.comcast.com/community/docs/default-source/default-document-library/us51558524.pdf?sfvrsn=7fbf4754_1">90% of retail tools will embed AI by 2026</a>, with <a href="https://business.comcast.com/community/docs/default-source/default-document-library/us51558524.pdf?sfvrsn=7fbf4754_1">edge solutions expected to help 45% of retailers optimize local assortments</a>. Meanwhile, <a href="https://www.mckinsey.com/featured-insights/artificial-intelligence/global-ai-survey-ai-proves-its-worth-but-few-scale-impact">according to McKinsey</a>, 44% of retailers that have implemented AI already reduced operational costs, while the majority have seen increases in revenue. </p><p>Yet, Edge AI <strong>isn’t just about running AI models locally</strong>. I<strong>t’s about creating an autonomous, resilient system</strong> where <strong>on-device vector databases, local processing, and hybrid data sync</strong> work together. This combination enables real-time retail intelligence while keeping <strong>costs low, data private, and operations uninterrupted</strong>. To stay ahead, businesses should invest in edge-ready infrastructure with <a href="http://objectbox.io">on-device vector databases and data sync that works on-premise at their core</a>. <a href="https://www.accenture.com/us-en/insights/retail/unleashing-power-generative-ai">Those who hesitate risk losing ground to nimble competitors</a> who have already tapped into real-time, in-store intelligence.</p><p><a href="https://objectbox.io/mongodb/">Hybrid systems</a>, combining lightning-fast offline-first edge response times with the power of the cloud, are becoming the norm. <a href="https://business.comcast.com/community/docs/default-source/default-document-library/us51558524.pdf?sfvrsn=7fbf4754_1">IDC projects that 78% of retailers will adopt these setups by 2026, saving an average of $3.6 million per store annually</a>. In an inflation-driven market, Edge AI isn’t just a perk – it’s a critical strategy for thriving in the future of retail. By leveraging <strong>Edge AI-powered on-device databases</strong>, retailers gain the <strong>speed, efficiency, and reliability</strong> needed to stay competitive in an AI-driven retail landscape.</p> </article> <article id="post-49882" class="et_pb_post post-49882 post type-post status-publish format-standard has-post-thumbnail hentry category-edge-computing category-insights category-iot category-sync tag-sustainable-tech"> <a class="entry-featured-image-url" href="https://objectbox.io/why-do-we-need-edge-computing-for-a-sustainable-future/"> <img src="https://objectbox.io/wordpress/wp-content/uploads/2024/11/EdgeComputingSustainable-1080x675.jpg" alt="Why do we need Edge Computing for a sustainable future?" class="" width="1080" height="675" /> </a> <h2 class="entry-title"><a href="https://objectbox.io/why-do-we-need-edge-computing-for-a-sustainable-future/">Why do we need Edge Computing for a sustainable future?</a></h2> <p class="post-meta"> by <span class="author vcard"><a href="https://objectbox.io/author/vivien/" title="Posts by Vivien" rel="author">Vivien</a></span> | <span class="published">Nov 30, 2024</span> | <a href="https://objectbox.io/category/edge-computing/" rel="category tag">Edge Computing</a>, <a href="https://objectbox.io/category/insights/" rel="category tag">Insights</a>, <a href="https://objectbox.io/category/iot/" rel="category tag">IoT</a>, <a href="https://objectbox.io/category/sync/" rel="category tag">Sync</a></p><div class="et_pb_section et_pb_section_0 et_section_regular" > <div class="et_pb_row et_pb_row_0"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_0 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_0 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;"></span><span style="font-weight: 400;">Centralized data centers use a lot of energy and water, emit a lot of CO2, and generate a lot of electronic waste. In fact, cloud data centers are already responsible for around 300 Mt</span><span style="font-weight: 400;"> of CO2-eq greenhouse gas emissions [1]. And the energy consumption of data centers is increasing at an exponential rate [2]. </span></p> <p><span style="font-weight: 400;">This challenge is further compounded by the exploding demand for AI workloads. With AI adoption accelerating, the demand for data center capacity is <a href="https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/ai-power-expanding-data-center-capacity-to-meet-growing-demand">projected to grow</a> by over 20% annually, potentially reaching ~300 GW by 2030. Remarkably, 70% of this capacity will be dedicated to hosting AI workloads. <a href="https://www.datacenterknowledge.com/business/four-gartner-predictions-affecting-your-data-center">Gartner predicts</a> that without sustainable AI practices, AI alone could consume more energy than the human workforce by 2025, significantly undermining carbon-zero initiatives.</span></p> <p><span style="font-weight: 400;">While more data centers are switching to green energy [3], this approach is not nearly enough to solve the problem. A more sustainable approach is to reduce unnecessary cloud traffic, central computation, and storage as much as possible by shifting computation to the edge. In our experience, just reducing data overhead and unnecessary data traversals can easily cut 60-90% of data traffic and thus significantly impact the CO2 footprint of an application, as well as costs.</span></p> <p><span style="font-weight: 400;"></span></p> <p><span style="font-weight: 400;">Edge Computing stores and uses data on or near the device on which it was created. This reduces the amount of traffic sent to the cloud and, on a large scale, has a significant impact on energy consumption and carbon emissions.</span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_1 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><span style="font-weight: 400;">Why do Digitization projects need to think about sustainability now?</span></h3></div> </div><div class="et_pb_module et_pb_text et_pb_text_2 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Given the gravity of the climate crisis, every industry needs to assess its potential environmental impact and find ways to reduce its carbon footprint. The digital world, and its most valuable commodity, data, should not be any different. The digital transformation is ongoing and with it electronic devices and IT usage numbers are exploding. Thus, new apps must consider their carbon footprint throughout their lifecycle, especially resource use in operation and at scale [4]. </span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_1"> <div class="et_pb_column et_pb_column_1_2 et_pb_column_1 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Also, think about this: The share of global electricity used by data centers is already estimated to be around 1-1.5% [1] and data centers generate 2% of worldwide CO2 emissions (on par with the aviation industry) [5]. Recent analyses by Gardian suggests that the greenhouse gas emissions from the in-house data centers of major tech companies—Google, Microsoft, Meta, and Apple—are likely about 7.62 times higher than their official reports indicate. [6]. On top of this, providing and maintaining cloud infrastructure (manufacturing, shipping of hardware, buildings and lines) also consumes a huge amount of greenhouse gasses [7] and produces a lot of abnormal waste (e.g. toxic coolants) at the end of life [8].</span></p></div> </div> </div><div class="et_pb_column et_pb_column_1_2 et_pb_column_2 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_image et_pb_image_0"> <span class="et_pb_image_wrap "><picture decoding="async" title="sustainable edge computing" class="wp-image-49887"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/04/co2-emissions-data-center1.png.webp"/> <img decoding="async" width="411" height="207" src="https://objectbox.io/wordpress/wp-content/uploads/2020/04/co2-emissions-data-center1.png" alt="sustainable edge computing"/> </picture> </span> </div> </div> </div><div class="et_pb_row et_pb_row_2"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_3 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_4 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Bearing that in mind, the growth rate for data center demand is concerning. The steady increase in data processing, storage, and traffic in the future, comes with a forecasted <b>electricity consumption by data centers to grow by 10% a year</b> [9]. In fact, estimations expect the communications industry to use 20% of all the world’s electricity by 2025 [10]. </span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_3"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_4 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_image et_pb_image_1"> <span class="et_pb_image_wrap "><picture decoding="async" title="sustainable edge computing" class="wp-image-49886"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/04/global-electricity-data-center-image.png.webp"/> <img decoding="async" width="678" height="340" src="https://objectbox.io/wordpress/wp-content/uploads/2020/04/global-electricity-data-center-image.png" alt="sustainable edge computing"/> </picture> </span> </div><div class="et_pb_module et_pb_text et_pb_text_5 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Shifting to green energy is a good step. However, a more effective and ultimately longer term solution requires looking at the current model of data storage, filtering, processing and transferal. By implementing Edge Computing, we can reduce the amount of useless and wasteful data traversing to and from the cloud as much as possible, thus reducing overall energy requirements in the long term. Of course, everyone can make a difference with their daily behavior and for developers that is especially true: </span><a href="https://objectbox.io/green-coding/"><span style="font-weight: 400;">Applying green coding principles helps producing applications that produce lower CO2 emissions</span></a><span style="font-weight: 400;"> over the whole app lifetime</span><span style="font-weight: 400;">.</span><span style="font-weight: 400;"> </span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_6 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><span style="font-weight: 400;">What is Edge Computing?</span></h3></div> </div><div class="et_pb_module et_pb_text et_pb_text_7 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Until recently 90% of enterprise data was sent to the cloud, but this is changing rapidly. In fact, this number is dropping to only 25% by 2025,</span><a href="https://www.gartner.com/smarterwithgartner/what-edge-computing-means-for-infrastructure-and-operations-leaders/"> <span style="font-weight: 400;">according to Gartner</span></a><span style="font-weight: 400;">. By then, most of the data will be stored and used locally, on the device it was created on, e.g. on smartphones, cars, trains, machines, watches. This is Edge Computing, and it is an inherently decentralized computing paradigm (as opposed to the centralized cloud computing approach). Accordingly, every edge device needs the same technology stack (just in a much smaller format) as a cloud server. This means: An operating system, a data storage / persistence layer (database), a networking layer, security functionalities etc. that run efficiently on restricted hardware.</span></p> <p><span style="font-weight: 400;">As you can only use the devices’ resources, which can be pretty limited, inefficient applications can push a device to its limits, leading to slow response rates, crashes, and battery drain.</span></p></div> </div><div class="et_pb_module et_pb_image et_pb_image_2"> <span class="et_pb_image_wrap "><picture decoding="async" title="Application-Programs1 (1)" class="wp-image-53247"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/01/Application-Programs1-1.jpg.webp"/> <img decoding="async" width="596" height="335" src="https://objectbox.io/wordpress/wp-content/uploads/2021/01/Application-Programs1-1.jpg" alt="edge device architecture"/> </picture> </span> </div><div class="et_pb_module et_pb_text et_pb_text_8 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p style="text-align: center;"><span style="font-weight: 400;">EDGE DEVICE ARCHITECTURE</span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_9 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;"></span><span style="font-weight: 400;"></span><span style="font-weight: 400;">Edge Computing is much more than some simple data pre-processing, which takes advantage of only a small portion of the computing that is possible on the edge. An</span><a href="https://objectbox.io/what-is-an-edge-database-and-why-do-you-need-one/"> <span style="font-weight: 400;">Edge Database</span></a><span style="font-weight: 400;"> is a prerequisite for meaningful Edge Computing. With an Edge Database, data can be stored and processed on the devices directly (the so-called edge). Only useful data is sent to the server and saved there, reducing the networking traffic and computing power used in data centers tremendously, while also making use of the computing resources of devices which are already in use. This greatly reduces bandwidth and energy required by data centers. On top, Edge Computing also provides the flexibility to operate independently from an Internet connection, enables fast real time response rates, and cuts cloud costs.</span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_10 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3 style="text-align: center;">Why is Edge Computing sustainable?</h3></div> </div> </div> </div><div class="et_pb_row et_pb_row_4"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_5 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_text et_pb_text_11 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h4 style="text-align: center;"><strong>Edge Computing reduces network traffic and data center usage</strong></h4></div> </div><div class="et_pb_module et_pb_text et_pb_text_12 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">With Edge Computing the amount of data traversing the network can be reduced greatly, freeing up bandwidth. Bandwidth i<span>s a measure of the quantity / size of data a network can transfer in a given time frame. Bandwidth </span>is shared among users. Accordingly, the more data is supposed to be sent via the network at a given moment, the slower the network speed. Data on the edge is also much more likely to be useful and indeed used on the edge, in context of its environment. Instead of constantly sending data strems to the cloud, it therefore makes sense to work with the data on the edge and only send that data to the cloud that really is of use there (e.g. results, aggregated data etc.).</span></p></div> </div> </div><div class="et_pb_column et_pb_column_1_3 et_pb_column_6 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_text et_pb_text_13 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h4 style="text-align: center;"><strong>Edge computing is optimized for efficiency</strong></h4></div> </div><div class="et_pb_module et_pb_text et_pb_text_14 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;"></span><span style="font-weight: 400;">Edge “data centers” are typically more efficient than cloud data centers. As described above, resources on edge devices are restricted. Therefore, and as opposed to cloud infrastructure, edge devices do not scale horizontally. That is one reason why every piece of the edge tech stack is – typically and ideally – highly optimized for resource efficiency. Any computing done more efficiently helps reduce energy consumption. Taking into account the huge number of devices already deployed , the worldwide impact of reducing resource use for the same operations is significant.</span></p></div> </div> </div><div class="et_pb_column et_pb_column_1_3 et_pb_column_7 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_15 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h4 style="text-align: center;"><strong><b>Edge Computing uses available hardware</b></strong></h4></div> </div><div class="et_pb_module et_pb_text et_pb_text_16 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">There is a realm of edge devices already deployed that is currently underused. Many existing devices are capable of data persistence, and some even for fairly complex computing. When these devices – instead – send all of their data to the cloud, an opportunity is lost. Edge Computing enables companies to use existing hardware and infrastructure (retrofitting), taking advantage of the available computing power. If these devices continue to be underused, we will need to build bigger and bigger central data centers, simultaneously burdening existing network infrastructure and reducing bandwidth for senselessly sending everything to the cloud.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_5"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_8 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_with_border et_pb_module et_pb_video et_pb_video_0"> <div class="et_pb_video_box"> <video controls> <source type="video/webm" src="https://objectbox.io/wordpress/wp-content/uploads/2020/02/IoT-Devices.webm" /> </video></div> <div style="background-image:url(https://objectbox.io/wordpress/wp-content/uploads/2020/02/4x.png)" class="et_pb_video_overlay"><div class="et_pb_video_overlay_hover"><a href="#" class="et_pb_video_play"></a></div></div> </div> </div> </div><div class="et_pb_row et_pb_row_6"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_9 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_17 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><span style="font-weight: 400;">Cloud versus Edge: an Example</span></h3></div> </div><div class="et_pb_module et_pb_text et_pb_text_18 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Today, many projects are built based on cloud computing. Especially in first prototypes or pilots, cloud computing offers an easy and fast start. However, with scale, cloud computing often becomes too slow, expensive, and unreliable. In a typical cloud setup, data is gathered on edge devices and forwarded to the cloud for computation and storage. Often a computed result is sent back. In this design, the edge devices are dumb devices that are dependent upon a working internet connection and a working cloud server; they do not have any intelligence or logic of their own. In a smart home cloud example, data would be sent from devices in the home, e.g. a thermostat, the door, the TV etc. to the cloud, where it is saved and used.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_7"> <div class="et_pb_column et_pb_column_1_2 et_pb_column_10 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_3"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="Cloud vs Edge" class="wp-image-49896"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/04/iot-cloud-based-1024x451.png.webp"/> <img loading="lazy" decoding="async" width="1024" height="451" src="https://objectbox.io/wordpress/wp-content/uploads/2020/04/iot-cloud-based-1024x451.png" alt="Cloud vs Edge"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_1_2 et_pb_column_11 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_19 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">If the user would want to make changes via a cloud-based mobile app when in the house, the changes would be sent to the cloud, changed there and then from there be sent to the devices. When the Internet connection is down or the server is not working, the application will not work.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_8"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_12 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_20 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">With Edge Computing, data stays where it is produced, used and where it belongs – without traversing the network unnecessarily. This way, cloud infrastructure needs are reduced in three ways: Firstly, less network traffic, secondly, less central storage and thirdly less computational power. Rather, edge computing makes use of all the capable hardware already deployed in the world. E.g. in a smart home, all the data could stay within the house and be used on site. Only the small part of the data truly needed accessible from anywhere would be synchronized to the cloud. <br /></span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_9"> <div class="et_pb_column et_pb_column_1_2 et_pb_column_13 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_4"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="Cloud vs Edge" class="wp-image-49895"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/04/iot-edge-based-1024x455.png.webp"/> <img loading="lazy" decoding="async" width="1024" height="455" src="https://objectbox.io/wordpress/wp-content/uploads/2020/04/iot-edge-based-1024x455.png" alt="Cloud vs Edge"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_1_2 et_pb_column_14 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_21 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Take for example a thermostat in such a home setting: it might produce 1000s of temperature data points per minute. However, minimal changes typically do not matter and data updates aren’t necessary every millisecond. On top, you really do not need all this data in the cloud and accessible from anywhere.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_10"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_15 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_22 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">With Edge Computing, this data can stay on the edge and be used within the smart home as needed. Edge Computing enables the smart home to work fast, efficiently, and autonomous from a working internet connection. In addition, the smart home owner can keep the private data to him/herself and is less vulnerable to hacker attacks. </span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_11"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_16 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_23 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><span style="font-weight: 400;">How does ObjectBox make Edge Computing even more sustainable?</span></h3></div> </div><div class="et_pb_module et_pb_text et_pb_text_24 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">ObjectBox improves the sustainability of Edge Computing with high performance and efficiency: our 10X speed advantage translates into less use of CPU and battery / electricity. With ObjectBox, devices compute 10 times as much data with equivalent power. Due to the small size and efficiency, ObjectBox runs on restricted devices allowing application developers to utilize existing hardware longer and/or to do more instead of existing infrastructure / hardware.</span></p> <p><span style="font-weight: 400;">Alongside the performance and size advantages, ObjectBox powers on-device AI applications with its <a href="https://objectbox.io/vector-database-for-ondevice-ai/">on-device vector database</a>, which is optimized for <a href="https://objectbox.io/local-ai-what-it-is-and-why-we-need-it/">handling AI workloads locally</a>. This capability, coupled with <a href="https://objectbox.io/the-rise-of-small-language-models-2/">the rise of small language models (SLMs)</a>, allows developers to shift AI processing from the cloud to the device.</span></p> <p><span style="font-weight: 400;"> ObjectBox’ <a href="/sync">Sync solution</a> takes care of making data available where needed when needed. It allows synchronization in an offline setting and / or to the cloud. Based on efficient syncing principles, ObjectBox Sync aims to reduce unnecessary data traffic as much as possible and is therefore perfectly suited for efficient, useful, and sustainable Edge Computing. Even when syncing the same amount of data, ObjectBox Sync reduces the bandwidth needed and thus cloud networking usage, which incidentally reduces cloud costs.</span></p> <p>Finally, ObjectBox’ <a href="https://objectbox.io/time-series-database/">Time Series feature</a>, provides users an intuitive dashboard to see patterns behind the data, further helping users to track thousands of data points/second in real-time.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_12"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_17 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_25 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><span style="font-weight: 400;">How Edge Computing enables new use cases that help make the world more sustainable</span></h3></div> </div><div class="et_pb_module et_pb_text et_pb_text_26 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">As mentioned above, there are a variety of IoT applications that help reduce waste of all kinds. These applications can have a huge impact on creating a more sustainable world, assuming the applications themselves are sustainable. Three powerful examples to demonstrate the huge impact IoT applications can have on the world:</span></p></div> </div><div class="et_pb_module et_pb_blurb et_pb_blurb_0 et_pb_text_align_left et_pb_blurb_position_left et_pb_bg_layout_light"> <div class="et_pb_blurb_content"> <div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap et_pb_only_image_mode_wrap"><picture loading="lazy" decoding="async" class="et-waypoint et_pb_animation_top et_pb_animation_top_tablet et_pb_animation_top_phone wp-image-49889"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/04/food-waste-300x300.png.webp"/> <img loading="lazy" decoding="async" width="300" height="300" src="https://objectbox.io/wordpress/wp-content/uploads/2020/04/food-waste-300x300.png" alt="food-icon"/> </picture> </span></div> <div class="et_pb_blurb_container"> <h4 class="et_pb_module_header"><span>Reducing Food Waste</span></h4> <div class="et_pb_blurb_description"><p><span style="font-weight: 400;">From farm to kitchen, IoT applications can help to reduce food waste across the food chain. Sensors used to monitor the cold chain, from field to supermarket, can ensure that food maintains a certain temperature, thus guaranteeing that products remain food safe and fresh longer, reducing food waste. In addition, local storage can be used to power apps that fight household waste (<a href="https://youtube.com/playlist?list=PLZQbl9Jhl-VCUWJh3969Oxt8ykDzUlQMR" target="_blank" rel="noopener">you can learn how to build a food sharing app yourself in Flutter with this tutorial</a>).</span></p></div> </div> </div> </div><div class="et_pb_module et_pb_blurb et_pb_blurb_1 et_pb_text_align_left et_pb_blurb_position_left et_pb_bg_layout_light"> <div class="et_pb_blurb_content"> <div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap et_pb_only_image_mode_wrap"><picture loading="lazy" decoding="async" class="et-waypoint et_pb_animation_top et_pb_animation_top_tablet et_pb_animation_top_phone wp-image-49890"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/04/light-waste-300x300.png.webp"/> <img loading="lazy" decoding="async" width="300" height="300" src="https://objectbox.io/wordpress/wp-content/uploads/2020/04/light-waste-300x300.png" alt="light bulb"/> </picture> </span></div> <div class="et_pb_blurb_container"> <h4 class="et_pb_module_header"><span>Smart City Lighting</span></h4> <div class="et_pb_blurb_description"><p><span style="font-weight: 400;">Smart City Lighting: Chicago has implemented a system which allows them to save approx. 10 million USD / year and London estimates it can save up to 70% of current electricity use and costs as well as maintenance costs through smart public lighting systems [10].</span></p></div> </div> </div> </div><div class="et_pb_module et_pb_blurb et_pb_blurb_2 et_pb_text_align_left et_pb_blurb_position_left et_pb_bg_layout_light"> <div class="et_pb_blurb_content"> <div class="et_pb_main_blurb_image"><span class="et_pb_image_wrap et_pb_only_image_mode_wrap"><picture loading="lazy" decoding="async" class="et-waypoint et_pb_animation_top et_pb_animation_top_tablet et_pb_animation_top_phone wp-image-49891"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/04/water-waste-300x300.png.webp"/> <img loading="lazy" decoding="async" width="300" height="300" src="https://objectbox.io/wordpress/wp-content/uploads/2020/04/water-waste-300x300.png" alt="water-drop"/> </picture> </span></div> <div class="et_pb_blurb_container"> <h4 class="et_pb_module_header"><span>Reducing Water Waste</span></h4> <div class="et_pb_blurb_description"><p><span style="font-weight: 400;">Many homes and commercial building landscapes are still watered manually or on a set schedule. This is an inexact method of watering, which does not take into account weather, soil moistness, or the water levels needed by the plant. Using smart IoT water management solutions, landscape irrigation can be reduced, saving water and improving landscape health.</span></p></div> </div> </div> </div> </div> </div><div class="et_pb_row et_pb_row_13"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_18 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_27 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">These positive effects are all the more powerful when the applications themselves are sustainable. </span></p> <h2><span style="font-weight: 400;">Sustainable digitization needs an edge</span></h2> <p><span style="font-weight: 400;">The benefits of cloud computing are broad and powerful, however there are costs to this technology. A combination of green data centers and Edge Computing helps to resolve these often unseen costs. With Edge Computing we can reduce the unnecessary use of bandwidth and server capacity (which comes down to infrastructure, electricity and physical space) while simultaneously taking advantage of underused device resources. Also with AI growing in popularity, Edge Computing will become very relevant for sustainable AI applications. </span><span style="font-weight: 400;">AI applications are very resource intensive and Edge AI will help to distribute workloads in a resourceful manner, lowering the resource-use. One example of this is an <a href="https://objectbox.io/vector-embeddings-support-local-java-database/" target="_blank" rel="noopener">efficient local vector database</a>. </span><span style="font-weight: 400;">ObjectBox amplifies these benefits, with high performance on small devices and efficient data synchronization – making edge computing an even more sustainable solution.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_14"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_19 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_button_module_wrapper et_pb_button_0_wrapper et_pb_button_alignment_center et_pb_module "> <a class="et_pb_button et_pb_button_0 et_pb_bg_layout_light" href="https://objectbox.io/offline-first-mobile-database/" target="_blank" data-icon="5">Try ObjectBox: the Edge Database</a> </div> </div> </div><div class="et_pb_row et_pb_row_15"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_20 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_divider et_pb_divider_0 et_pb_divider_position_ et_pb_space"><div class="et_pb_divider_internal"></div></div> </div> </div><div class="et_pb_row et_pb_row_16"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_21 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_28 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><ol> <li style="font-weight: 400;" aria-level="1"><a href="https://www.iea.org/reports/data-centres-and-data-transmission-networks"><span style="font-weight: 400;">https://www.iea.org/energy-system/buildings/data-centres-and-data-transmission-networks</span></a></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;"><a href="https://8billiontrees.com/carbon-offsets-credits/carbon-ecological-footprint-calculators/carbon-footprint-of-data-centers/">https://8billiontrees.com/carbon-offsets-credits/carbon-ecological-footprint-calculators/carbon-footprint-of-data-centers/</a></span><span style="font-weight: 400;"></span></li> <li style="font-weight: 400;" aria-level="1"><a href="https://www.datacenterdynamics.com/en/opinions/future-data-centers-green/"><span style="font-weight: 400;">https://www.datacenterdynamics.com/en/opinions/future-data-centers-green/</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://www.datacamp.com/blog/environmental-impact-data-digital-technology"><span style="font-weight: 400;">https://www.datacamp.com/blog/environmental-impact-data-digital-technology</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://www.computerworld.com/article/3431148/why-data-centres-are-the-new-frontier-in-the-fight-against-climate-change.html"><span style="font-weight: 400;">https://www.theguardian.com/technology/2024/sep/15/data-center-gas-emissions-tech</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://medium.com/@jaychapel/aws-vs-azure-vs-google-cloud-market-share-2019-what-the-latest-data-shows-dc21f137ff1c"><span style="font-weight: 400;">https://medium.com/@jaychapel/aws-vs-azure-vs-google-cloud-market-share-2019-what-the-latest-data-shows-dc21f137ff1c</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://thereader.mitpress.mit.edu/the-staggering-ecological-impacts-of-computation-and-the-cloud/"><span style="font-weight: 400;">https://thereader.mitpress.mit.edu/the-staggering-ecological-impacts-of-computation-and-the-cloud/</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://link.springer.com/article/10.1007/s12053-019-09833-8#ref-CR2"><span style="font-weight: 400;">https://link.springer.com/article/10.1007/s12053-019-09833-8#ref-CR2</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/investing-in-the-rising-data-center-economy"><span style="font-weight: 400;">https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/investing-in-the-rising-data-center-economy</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://www.smartcitylab.com/blog/urban-environment/lighting-the-road-to-smart-cities-and-sustainability/"><span style="font-weight: 400;">https://www.researchgate.net/publication/320225452_Total_Consumer_Power_Consumption_Forecast</span></a></li> </ol> <p><a href="https://fortune.com/2019/09/18/internet-cloud-server-data-center-energy-consumption-renewable-coal/"></a></p> <p> </p></div> </div> </div> </div> </div> </article> <article id="post-260848" class="et_pb_post post-260848 post type-post status-publish format-standard has-post-thumbnail hentry category-case-study category-edge-computing category-insights category-iot tag-edge-computing tag-edge-database tag-healthcare tag-sync"> <a class="entry-featured-image-url" href="https://objectbox.io/iot-edge-computing-and-digitalization-in-healthcare/"> <img src="https://objectbox.io/wordpress/wp-content/uploads/2024/11/2025-EdgeComputingHealthcareSmartHealthTech-1080x675.png" alt="IoT, Edge Computing, and Digitalization in Healthcare" class="" width="1080" height="675" /> </a> <h2 class="entry-title"><a href="https://objectbox.io/iot-edge-computing-and-digitalization-in-healthcare/">IoT, Edge Computing, and Digitalization in Healthcare</a></h2> <p class="post-meta"> by <span class="author vcard"><a href="https://objectbox.io/author/anastasia/" title="Posts by Anastasia" rel="author">Anastasia</a></span> | <span class="published">Nov 22, 2024</span> | <a href="https://objectbox.io/category/case-study/" rel="category tag">Case Study</a>, <a href="https://objectbox.io/category/edge-computing/" rel="category tag">Edge Computing</a>, <a href="https://objectbox.io/category/insights/" rel="category tag">Insights</a>, <a href="https://objectbox.io/category/iot/" rel="category tag">IoT</a></p><div class="et_pb_section et_pb_section_1 et_section_regular" > <div class="et_pb_row et_pb_row_17"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_22 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_29 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">The healthcare industry is experiencing an </span><a href="https://www.sciencedirect.com/science/article/pii/S2414644724000034#:~:text=The%20healthcare%20industry%20generates%20approximately,it%20available%20for%20scientific%20discovery."><span style="font-weight: 400;">unprecedented surge in data generation, responsible for approximately 30% of the world’s total data volume</span></a><span style="font-weight: 400;">. This vast and fast-growing amount of health data is the primary force behind the digital transformation of healthcare. Only through the adoption of advanced technologies can healthcare providers manage, analyze, and secure this information. While COVID-19 accelerated this shift, contributing to the explosion of health data, the ongoing demand for real-time patient insights, personalized treatment, and improved operational efficiency continues to drive the sector toward digitalization and AI. </span><span style="font-weight: 400;">Simultaneously, growing data privacy concerns, increasing costs, and heavier regulatory requirements are challenging the use of cloud computing to manage this data. </span><a href="https://objectbox.io/why-edge-computing-is-more-relevant-in-2021-than-ever/"><span style="font-weight: 400;">A megashift to Edge Computing</span></a><span style="font-weight: 400;"> and </span><a href="https://objectbox.io/on-device-vector-databases-and-edge-ai/"><span style="font-weight: 400;">Edge AI</span></a><span style="font-weight: 400;"> is addressing these challenges, enabling a faster, safer, and more reliable digital healthcare infrastructure.</span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_30 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>The digital healthcare market 2024 and beyond, a high-speed revolution</h2> <p><span style="font-weight: 400;">Prior to COVID, </span><a href="https://www.accenture.com/us-en/insights/health/leaders-make-recent-digital-health-gains-last"><span style="font-weight: 400;">growth in digital health adoption stalled</span></a><span style="font-weight: 400;">. However, digitalization in the healthcare industry has sky-rocketed since the start of the pandemic. Reflecting this market turnaround, </span><span style="font-weight: 400;">followed by the rise of advanced digital tools like AI, recent years have been </span><a href="https://www.privateequityinternational.com/three-key-trends-in-healthcare/"><span style="font-weight: 400;">record-breaking for investments in healthcare companies</span></a><span style="font-weight: 400;">. A trend that will continue in the next years, as analysts predict rapid growth across digital healthcare market sectors:</span></p></div> </div><div class="et_pb_module et_pb_image et_pb_image_5"> <span class="et_pb_image_wrap "><img decoding="async" width="3661" height="1871" src="https://objectbox.io/wordpress/wp-content/uploads/2024/11/2024_11_21_Healthcare_market.png" alt="Healthcare market overview" title="2024_11_21_Healthcare_market" class="wp-image-260850" /></span> </div><div class="et_pb_module et_pb_text et_pb_text_31 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>Drivers of growth and change in digital healthcare</h2> <h3></h3> <p> </p></div> </div> </div> </div><div class="et_pb_row et_pb_row_18"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_23 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_32 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3>Digital Healthcare Growth Driver 1: Growing Medical IoT Device Adoption</h3> <p><span style="font-weight: 400;">There will be a projected </span><a href="https://iot-analytics.com/number-connected-iot-devices/"><span style="font-weight: 400;">40 billion IoT devices by 2030</span></a><span style="font-weight: 400;">.</span> <span style="font-weight: 400;">IoMT devices already accounted for </span><a href="https://mobidev.biz/blog/technology-trends-healthcare-digital-transformation"><span style="font-weight: 400;">30% of the entire IoT device market in 2020</span></a><span style="font-weight: 400;">. Internet of Medical Things (IoMT) are hardware devices designed to process, collect, and/or transmit health</span><span style="font-weight: 400;">–</span><span style="font-weight: 400;">related data via a network. </span><a href="https://www.computerworld.com/article/3529427/how-iot-is-becoming-the-pulse-of-healthcare.html"><span style="font-weight: 400;">According to Gartner</span></a><span style="font-weight: 400;">, 79% of healthcare providers are already using IoT in their processes, i.e. remote health monitoring via wearables, </span><a href="https://science.sciencemag.org/content/360/6391/915"><span style="font-weight: 400;">ingestible sensors</span></a><span style="font-weight: 400;">, </span><a href="http://emag.medicalexpo.com/disinfection-robots-against-covid-19/"><span style="font-weight: 400;">disinfection robots</span></a><span style="font-weight: 400;">, or </span><a href="https://www.theverge.com/2019/12/13/21020811/fda-closed-loop-insulin-system-software-diabetes-tandemcontrol-iq"><span style="font-weight: 400;">closed-loop insulin delivery systems</span></a><span style="font-weight: 400;">.</span> <span style="font-weight: 400;">IoMT devices increase safety and efficiency in healthcare, and future technical applications, like smart ambulances or augmented reality glasses that assist during surgery, are limitless.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_19"> <div class="et_pb_column et_pb_column_2_3 et_pb_column_24 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_testimonial et_pb_testimonial_0 clearfix et_pb_text_align_center et_pb_bg_layout_dark et_pb_icon_off et_pb_testimonial_no_image"> <div class="et_pb_testimonial_description"> <div class="et_pb_testimonial_description_inner"><div class="et_pb_testimonial_content"><p><b>IoMT devices accounted for 30% of the IoT device market</b></p></div></div> <p class="et_pb_testimonial_meta"></p> </div> </div> </div><div class="et_pb_column et_pb_column_1_3 et_pb_column_25 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_image et_pb_image_6"> <span class="et_pb_image_wrap "><picture decoding="async" title="health-care-3" class="wp-image-222852"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-3.png.webp"/> <img decoding="async" width="230" height="279" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-3.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div> </div><div class="et_pb_row et_pb_row_20"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_26 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_33 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3>Digital Healthcare Growth Driver 2: The Explosion of Health Data</h3> <p><span style="font-weight: 400;">Growing IoMT adoption is subsequently driving a rapid increase in the amount of collected health data. </span><a href="https://www.rbccm.com/en/gib/healthcare/episode/the_healthcare_data_explosion"><span style="font-weight: 400;">According to the RBC study</span></a><span style="font-weight: 400;">, the healthcare industry is now responsible for approximately 30% of the world’s total data volume</span><span style="font-weight: 400;">. </span><span style="font-weight: 400;">By 2025, healthcare data is </span><a href="https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf"><span style="font-weight: 400;">expected to continue growing at a 36% CAGR</span></a><span style="font-weight: 400;">, outpacing</span><span style="font-weight: 400;"> data volumes from sectors like manufacturing, financial services, and media. </span><span style="font-weight: 400;">Big health data sets are being used to </span><a href="https://www.nature.com/articles/s41437-020-0303-2"><span style="font-weight: 400;">revolutionize healthcare</span></a><span style="font-weight: 400;">, bringing new insights into fields like oncology, and improving patient experience, care, and diagnosis. </span><a href="https://journalofbigdata.springeropen.com/articles/10.1186/s40537-019-0217-0"><span style="font-weight: 400;">According to the Journal of Big Data</span></a><span style="font-weight: 400;">: “taken together, big data will facilitate healthcare by introducing prediction of epidemics (in relation to population health), providing early warnings of disease conditions, and helping in the discovery of novel biomarkers and intelligent therapeutic intervention strategies for an improved quality of life.”</span><span style="font-weight: 400;"> In fact, </span><span style="font-weight: 400;">the healthcare analytics market is </span><a href="https://www.marketsandmarkets.com/Market-Reports/iot-medical-device-market-15629287.html"><span style="font-weight: 400;">projected to reach $129.7 billion by 2028</span></a><span style="font-weight: 400;">, growing at a 23.5% CAGR. This growth is driven by the need for real-time data processing, personalized medicine, and predictive analytics to manage chronic conditions and optimize hospital operations.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_21"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_27 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_7"> <span class="et_pb_image_wrap "><picture decoding="async" title="health-care-4" class="wp-image-222851"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-4-300x242.png.webp"/> <img decoding="async" width="300" height="242" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-4-300x242.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_28 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_testimonial et_pb_testimonial_1 clearfix et_pb_text_align_center et_pb_bg_layout_dark et_pb_icon_off et_pb_testimonial_no_image"> <div class="et_pb_testimonial_description"> <div class="et_pb_testimonial_description_inner"><div class="et_pb_testimonial_content"><p><b>Healthcare data occupies ~30% of the world’s total data volume</b></p></div></div> <p class="et_pb_testimonial_meta"></p> </div> </div> </div> </div><div class="et_pb_row et_pb_row_22"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_29 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_34 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3>Digital Healthcare Growth Driver 3: Artificial Intelligence</h3> <p><span style="font-weight: 400;">The increase in healthcare data opens up new opportunities and challenges to apply advanced technologies like big data analytics and </span><b>artificial intelligence (AI)</b><span style="font-weight: 400;"> to improve healthcare delivery, patient outcomes, and operational efficiency. For instance, AI is being used to analyze medical imaging data, identify patterns in electronic health records, and predict patient outcomes, contributing to improved patient care. By 2026, AI is </span><a href="https://www.accenture.com/au-en/insights/health/artificial-intelligence-healthcare"><span style="font-weight: 400;">projected to save the global healthcare industry over $150 billion annually</span></a><span style="font-weight: 400;">, by answering “20 percent of unmet clinical demand.” </span></p> <p><span style="font-weight: 400;">Generative AI, which includes </span><b>Large Language Models (LLMs)</b><span style="font-weight: 400;"> such as GPT-4, is playing a crucial role in this transformation. According to the </span><a href="https://www.mckinsey.com/industries/healthcare/our-insights/generative-ai-in-healthcare-adoption-trends-and-whats-next"><span style="font-weight: 400;">survey from McKinsey</span></a><span style="font-weight: 400;">, 70% of surveyed healthcare organizations are either currently testing or actively using generative AI tools for both clinical and administrative applications. This is unsurprising, as </span><a href="https://zipdo.co/ai-in-healthcare-statistics/"><span style="font-weight: 400;">LLM Chatbots can reduce waiting times by 80% in healthcare facilities</span></a><span style="font-weight: 400;">. In diagnostics, LLMs are being applied to interpret electronic health records and assist with predictive analytics, </span><a href="https://zipdo.co/ai-in-healthcare-statistics/"><span style="font-weight: 400;">leading to a reduction in hospital readmissions by up to 22%</span></a><span style="font-weight: 400;">. Additionally, LLMs have helped </span><a href="https://zipdo.co/ai-in-healthcare-statistics/"><span style="font-weight: 400;">improve medication adherence rates by 60%</span></a><span style="font-weight: 400;">, demonstrating their impact on patient care quality. </span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_23"> <div class="et_pb_column et_pb_column_2_3 et_pb_column_30 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_testimonial et_pb_testimonial_2 clearfix et_pb_text_align_center et_pb_bg_layout_dark et_pb_icon_off et_pb_testimonial_no_image"> <div class="et_pb_testimonial_description"> <div class="et_pb_testimonial_description_inner"><div class="et_pb_testimonial_content"><p><b>70% of healthcare organizations plan or use AI</b></p></div></div> <p class="et_pb_testimonial_meta"></p> </div> </div> </div><div class="et_pb_column et_pb_column_1_3 et_pb_column_31 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_image et_pb_image_8"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-5" class="wp-image-222850"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-5-300x185.png.webp"/> <img loading="lazy" decoding="async" width="300" height="185" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-5-300x185.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div> </div><div class="et_pb_row et_pb_row_24"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_32 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3>Digital Healthcare Growth Driver 4: Artificial Intelligence</h3> <p><span style="font-weight: 400;">With the rise of </span><b>IoMT</b><span style="font-weight: 400;"> and the boost in healthcare data,</span> <a href="https://objectbox.io/why-do-we-need-edge-computing-for-a-sustainable-future/"><b>Edge Computing</b></a><span style="font-weight: 400;"> is becoming a key driver of healthcare digitalization. </span><a href="https://www.grandviewresearch.com/industry-analysis/internet-of-medical-things-iomt-market-report"><span style="font-weight: 400;">The majority of IoMT devices (55.3</span><b> %</b><span style="font-weight: 400;">) currently operate on-premise rather than in the cloud</span></a><span style="font-weight: 400;">, ensuring faster, more secure real-time data processing. This shift to Edge Computing enhances data privacy and reduces latency, which is critical in life-critical medical applications. Additionally, the development of</span> <a href="https://objectbox.io/the-rise-of-small-language-models-2/"><b>Small Language Models</b></a><b> (SLMs)</b><span style="font-weight: 400;"> for </span><a href="https://objectbox.io/on-device-vector-databases-and-edge-ai/"><b>on-device AI</b></a><span style="font-weight: 400;"> (Edge AI) allows healthcare providers to deploy AI-powered solutions directly on medical devices. This helps with tasks like remote monitoring and diagnostics without the need for cloud connectivity, which is particularly beneficial in environments with limited internet access. </span></p> <p><span style="font-weight: 400;">As IoMT continues to evolve, Edge Computing will play an essential role in supporting healthcare’s increasing demand for real-time data processing. By 2025, it is projected that </span><a href="https://www.technologyreview.com/2021/06/10/1026038/transforming-health-care-at-the-edge/"><b>75% of the healthcare data </b><span style="font-weight: 400;">will be generated at the Edge</span></a><span style="font-weight: 400;">, further driving the adoption of these technologies across the industry.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_25"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_9"> <span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="300" height="300" src="https://objectbox.io/wordpress/wp-content/uploads/2024/11/AI-Health-Icon-300x300.png" alt="AI-Health-Icon" title="AI-Health-Icon" class="wp-image-260891" /></span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_34 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_testimonial et_pb_testimonial_3 clearfix et_pb_text_align_center et_pb_bg_layout_dark et_pb_icon_off et_pb_testimonial_no_image"> <div class="et_pb_testimonial_description"> <div class="et_pb_testimonial_description_inner"><div class="et_pb_testimonial_content"><p><b>75% of the healthcare data will be generated at the Edge in 2025</b></p></div></div> <p class="et_pb_testimonial_meta"></p> </div> </div> </div> </div><div class="et_pb_row et_pb_row_26"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_35 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_36 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3>Digital Healthcare Growth Driver 5: Underlying Social Megatrends</h3> <p><span style="font-weight: 400;">The global population is growing; global life expectancy is rising. Accordingly, by 2030 the world needs more energy, more food, </span><span style="font-weight: 400;">and</span><span style="font-weight: 400;"> more water. Explosive population growth in some areas versus declines in others contributes to shifts in economic power, resource allocation, societal habits, and norms. Many Western populations are aging rapidly. E.g. in America, the number of people 65+ is expected to nearly double to 72.1 million by 2034. Because the population is shrinking at the same time, elder care is a growing challenge and </span><a href="https://www.pwc.com/gx/en/government-public-services/assets/five-megatrends-implications.pdf"><span style="font-weight: 400;">researchers are looking to robots to solve it</span></a><span style="font-weight: 400;">. </span></p> <p><span style="font-weight: 400;">Health megatrends focus not only on the prevention of disease, but also on the perception of wellness, and new forms of living and working. Over </span><span style="font-weight: 400;">this</span><span style="font-weight: 400;"> decade more resources will be spent on health and longevity, leading to artificially and technologically enhanced human capabilities. </span><a href="https://www.pwc.com/gx/en/government-public-services/assets/five-megatrends-implications.pdf"><span style="font-weight: 400;">More lifestyle-related disorders and diseases are expected to emerge in the future</span></a><span style="font-weight: 400;">. </span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_27"> <div class="et_pb_column et_pb_column_2_3 et_pb_column_36 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_testimonial et_pb_testimonial_4 clearfix et_pb_text_align_center et_pb_bg_layout_dark et_pb_icon_off et_pb_testimonial_no_image"> <div class="et_pb_testimonial_description"> <div class="et_pb_testimonial_description_inner"><div class="et_pb_testimonial_content"><p>A focus on health and longevity will<br />lead to artificial & tech-enhanced<br />human capabilities</p></div></div> <p class="et_pb_testimonial_meta"></p> </div> </div> </div><div class="et_pb_column et_pb_column_1_3 et_pb_column_37 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_image et_pb_image_10"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-6" class="wp-image-222849"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-6.png.webp"/> <img loading="lazy" decoding="async" width="290" height="283" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-6.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div> </div><div class="et_pb_row et_pb_row_28"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_38 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_37 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>The Challenges of Healthtech</h2> <p>Along with more data, more devices, and more opportunities also comes more responsibility and more costs for healthcare providers.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_29"> <div class="et_pb_column et_pb_column_1_4 et_pb_column_39 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_11"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-7" class="wp-image-222848"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-7.png.webp"/> <img loading="lazy" decoding="async" width="131" height="193" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-7.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_3_4 et_pb_column_40 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_38 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><strong>Data Volume and Availability</strong> With the growing number of digital healthcare and medical devices, a dazzling volume of health data is created and collected across many different channels. <span style="font-weight: 400;">It will be </span><a href="https://www2.stardust-testing.com/en/the-digital-transformation-trends-and-challenges-in-healthcare"><span style="font-weight: 400;">vital for the healthcare industry</span></a><span style="font-weight: 400;"> to reliably synchronize and combine data across devices and channels. </span> Due to the sheer volume, reliable collection and analysis of this data is a major challenge. After it’s been processed, data needs to be available on demand, i.e. in emergency situations that require reliable, fast, available data.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_30"> <div class="et_pb_column et_pb_column_1_4 et_pb_column_41 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_12"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-8" class="wp-image-222847"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-8.png.webp"/> <img loading="lazy" decoding="async" width="188" height="201" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-8.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_3_4 et_pb_column_42 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_39 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><strong>Reliability, Privacy, and Data Security</strong> <span style="font-weight: 400;">are extremely important in health </span><span style="font-weight: 400;">technology; </span><a href="https://newsroom.accenture.com/news/2020/healthcare-organizations-must-transform-digital-experiences-between-people-and-technology-to-lead-the-future-of-care-finds-research-from-accenture"><span style="font-weight: 400;">70% of healthcare consumers are concerned about data privacy</span></a><span style="font-weight: 400;">. Data use is often governed by increasingly </span><a href="https://www.lexology.com/library/detail.aspx?g=99b83b76-3f2f-4b23-a5c3-30ad576af369"><span style="font-weight: 400;">strict national regulations</span></a><span style="font-weight: 400;">, i.e. HIPAA (USA) and/or GDPR (Europe). With the </span><a href="https://www.medicaleconomics.com/view/cyberattack-threat-to-health-care-providers-on-the-rise"><span style="font-weight: 400;">number of cyber-attacks in the healthcare industry on the rise</span></a><span style="font-weight: 400;">, healthcare professionals must be even more diligent about the storage and processing of data. In addition, healthtech must be extremely well vetted; failures can cost lives – typical “banana products”, which ripen with the customers, are a no-go.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_31"> <div class="et_pb_column et_pb_column_1_4 et_pb_column_43 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_13"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-9" class="wp-image-222846"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-9.png.webp"/> <img loading="lazy" decoding="async" width="171" height="170" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-9.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_3_4 et_pb_column_44 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_40 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><strong>IT Costs</strong> Medical devices contribute a large portion to healthcare budgets. However as data volumes grow, data costs will also become a relevant cost point. Sending all health data to the cloud to be stored and processed is not only slow and insecure, it is also extremely costly. To curb mobile network and cloud costs, much health data can be stored and processed at the edge, on local devices, with only necessary data being synced to a cloud or central server. By building resilient data architecture now, healthcare providers (e.g. hospitals, clinics, research centers) can avoid future costs and headaches.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_32"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_45 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_41 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>Edge Computing is Integral to Data-driven Healthcare Ecosystems</h2> <p>With big data volumes, industries like healthcare need to seek out resilient information architectures to accommodate growing numbers of data and devices. To build resilient and secure digital infrastructure, healthcare providers will need to utilize both cloud computing and edge computing models, exploiting the strengths of both systems.</p> <h4 style="text-align: center;"></h4> <h4 style="text-align: center;"><strong></strong></h4> <h4 style="text-align: center;"><strong>Cloud & Edge: What’s the Difference?</strong></h4></div> </div> </div> </div><div class="et_pb_row et_pb_row_33"> <div class="et_pb_column et_pb_column_1_2 et_pb_column_46 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_with_border et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><strong>Cloud Computing</strong> information is sent to a centralized data center, to be stored, processed and sent back to the edge. This causes latency and a higher risk of data breaches. Centralized data is useful for large-scale data analysis and the distribution of data between i.e. hospitals and doctors’ offices.</p></div> </div> </div><div class="et_pb_column et_pb_column_1_2 et_pb_column_47 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_with_border et_pb_module et_pb_text et_pb_text_43 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><strong><a href="https://objectbox.io/what-is-edge-computing/">Edge Computing</a> Data</strong> is stored and processed on or near the device it was created on. Edge Computing works without an internet connection, and thus is reliable and robust in any scenario. It is ideal for time-sensitive data (real-time), and improved data privacy and security.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_34"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_48 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_image et_pb_image_14"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-10" class="wp-image-222845"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-10.png.webp"/> <img loading="lazy" decoding="async" width="1360" height="741" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-10.png" alt="health-care-edge-computing"/> </picture> </span> </div><div class="et_pb_module et_pb_text et_pb_text_44 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>Edge Computing contributes to resilient and secure healthcare data systems</h2></div> </div> </div> </div><div class="et_pb_row et_pb_row_35"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_49 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_image et_pb_image_15"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-11" class="wp-image-222844"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-11.png.webp"/> <img loading="lazy" decoding="async" width="1332" height="621" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-11.png" alt="health-care-edge-computing"/> </picture> </span> </div><div class="et_pb_module et_pb_text et_pb_text_45 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>Transforming Healthcare with Edge Computing</h2> <h3>Use Case: Secure and Up to Date Digital Record Keeping in Doctors Offices</h3> <p>For private doctors’ offices, embracing digitalization comes with different hurdles than larger healthcare providers. Often, offices do not keep a dedicated IT professional on staff, and must find digital solutions that serve their needs, while allowing them to comply with ever-increasing data regulations. As an industry used to legislative challenges, GPs know that sensitive patient data must be handled with care.</p> <p>Solution providers serving private doctors’ offices are using <a href="https://objectbox.io/what-is-an-edge-database-and-why-do-you-need-one/">edge databases</a> to help keep patient data secure. An edge database allows private GPs to collect and store digital data locally. In newer practice setups, doctors use tablets, like iPads, throughout their practice to collect and track patient data, take notes and improve flexibility. This patient data should not be sent or stored in a central cloud server as this increases the risk of data breaches and opens up regulatory challenges. In a cloud-centered setup, the doctor also always needs to rely on a constant internet connection being available, making this also a matter of data availability</p></div> </div><div class="et_pb_module et_pb_image et_pb_image_16"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-12" class="wp-image-222843"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-12.png.webp"/> <img loading="lazy" decoding="async" width="1303" height="517" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-12.png" alt="health-care-edge-computing"/> </picture> </span> </div><div class="et_pb_module et_pb_text et_pb_text_46 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p>Accordingly, the patient data is stored locally, on the iPads, accessible only by the doctor treating the patient. Some of the data is <a href="https://objectbox.io/what-is-data-synchronization-how-to-keep-data-in-sync/">synchronized</a> to a local, in-office computer at the front desk for billing and administration. Other data is only synchronized for backup purposes and encrypted. Such a setup also allows synchronizing data between iPads, enabling doctors to share data in an instant.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_36"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_50 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_47 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>Use Case: Connected Ambulances – Real-Time Edge Data from Home to Hospital</h2></div> </div><div class="et_pb_module et_pb_image et_pb_image_17"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-13" class="wp-image-222842"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-13.png.webp"/> <img loading="lazy" decoding="async" width="1346" height="595" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-13.png" alt="health-care-edge-computing"/> </picture> </span> </div><div class="et_pb_module et_pb_text et_pb_text_48 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p>B<span style="font-weight: 400;">etween an incidence location and the hospital, a lot can happen. What if everything that happened in the ambulance was reliably and securely tracked and shared with the hospital, seamlessly? </span><span style="font-weight: 400;">There are already </span><a href="https://www.vodafone.co.uk/business/5g-for-business/5g-customer-stories/connected-ambulance"><span style="font-weight: 400;">trials using 5G technology to stream real-time data to hospitals</span></a><span style="font-weight: 400;">, allowing ambulance medics to </span><a href="https://www.digitalhealth.net/2019/04/london-ambulance-access-patient-data/"><span style="font-weight: 400;">access patient data while in transit</span></a><span style="font-weight: 400;">. Looking to the future, Edge Computing will enable digital healthcare applications to function in </span><span style="font-weight: 400;">real-time </span><span style="font-weight: 400;">and reliably anywhere and anytime, e.g. a moving ambulance, in the tunnel, or a remote area, enabling ambulance teams and doctors to give the best treatment instantly / on-site, while using available bandwidth and networks when available to seamlessly synchronize the relevant information to the relevant healthcare units, e.g. the next hospital. This will decrease friction, enhance operational processes, and improve time to treatment.</span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_49 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>Digital Healthcare: Key Take-Aways</h2> <p>Digital healthcare is a fast-growing industry; more data and devices alongside new tech are empowering rapid advances. Finding ways to utilize growing healthcare data, while ensuring data privacy, security and availability are key challenges ahead for healthcare providers. The healthcare industry must find the right mix of technologies to manage this data, utilizing cloud for global data exchange and big data analytics, while embracing Edge Computing for it’s speed, security, and resilience.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_37"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_51 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_18"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-6" class="wp-image-222849"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-6.png.webp"/> <img loading="lazy" decoding="async" width="290" height="283" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-6.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_52 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_50 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><a href="https://news.crunchbase.com/news/for-health-tech-startups-data-is-their-lifeline-now-more-than-ever/"><span style="font-weight: 400;">Underutilized data plays a major role in health-tech innovation</span></a><span style="font-weight: 400;">, data is the lifeline of future healthcare offerings; however, there is still much work to be done to improve the collection, management, and analysis of this data.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_38"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_53 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_19"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-5" class="wp-image-222850"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-5-300x185.png.webp"/> <img loading="lazy" decoding="async" width="300" height="185" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-5-300x185.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_54 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_51 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p>It’s all about data availability. Either in emergency situations, or simply to provide a smooth patient experience, data needs to be fast, reliable, and available: <a href="/sync">when you need it where you need it</a>.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_39"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_55 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_20"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="health-care-4" class="wp-image-222851"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-4-300x242.png.webp"/> <img loading="lazy" decoding="async" width="300" height="242" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/health-care-4-300x242.png" alt="health-care-edge-computing"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_56 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_52 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p>Edge computing alongside other developing technologies like 5G or Artificial Intelligence will empower a new and powerful digital healthcare ecosystem.</p></div> </div> </div> </div><div class="et_pb_row et_pb_row_40"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_57 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_53 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p>ObjectBox provides edge data software, to empower scalable and resilient digital innovation on the edge in healthcare, automotive, and manufacturing. ObjectBox’ edge database and data synchronization solution is 10x faster than any alternative, and empowers applications<br />that respond in real-time (low-latency), work offline without a connection to the cloud, reduce energy needs, keep data secure, and lower mobile network and cloud costs.</p></div> </div><div class="et_pb_button_module_wrapper et_pb_button_1_wrapper et_pb_button_alignment_center et_pb_module "> <a class="et_pb_button et_pb_button_1 et_pb_bg_layout_light" href="/contact" target="_blank">Get in touch to learn more about ObjectBox' Edge Technology</a> </div> </div> </div><div class="et_pb_row et_pb_row_41"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_58 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_54 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p>Sources</p> <ol> <li><span style="font-weight: 400;"> </span><a href="https://www.marketsandmarkets.com/Market-Reports/iot-healthcare-market-160082804.html"><span style="font-weight: 400;">https://www.marketsandmarkets.com/Market-Reports/iot-healthcare-market-160082804.html</span></a></li> <li><span style="font-weight: 400;"> </span><a href="https://www.marketsandmarkets.com/Market-Reports/artificial-intelligence-healthcare-market-54679303.html"><span style="font-weight: 400;">https://www.marketsandmarkets.com/Market-Reports/artificial-intelligence-healthcare-market-54679303.html</span></a></li> <li><span style="font-weight: 400;"> </span><a href="https://www.grandviewresearch.com/press-release/global-mhealth-app-market"><span style="font-weight: 400;">https://www.grandviewresearch.com/press-release/global-mhealth-app-market</span></a></li> <li><span style="font-weight: 400;"> </span><a href="https://www.grandviewresearch.com/industry-analysis/wearable-medical-devices-market"><span style="font-weight: 400;">https://www.grandviewresearch.com/industry-analysis/wearable-medical-devices-market</span></a></li> <li><a href="https://www.fortunebusinessinsights.com/industry-reports/digital-health-market-100227" style="font-size: 14px;"><span>https://www.fortunebusinessinsights.com/industry-reports/digital-health-market-100227</span></a></li> </ol></div> </div> </div> </div> </div> </article> <article id="post-31173" class="et_pb_post post-31173 post type-post status-publish format-standard has-post-thumbnail hentry category-android category-edge-database category-iot category-mobile-database tag-edge-computing tag-iot tag-mobile-database tag-synchronization"> <a class="entry-featured-image-url" href="https://objectbox.io/sqlite-alternatives/"> <img src="https://objectbox.io/wordpress/wp-content/uploads/2024/05/SQliteAndSQLiteAlternatives2024_2-1080x675.jpg" alt="SQLite and SQLite alternatives – a comprehensive overview" class="" width="1080" height="675" /> </a> <h2 class="entry-title"><a href="https://objectbox.io/sqlite-alternatives/">SQLite and SQLite alternatives – a comprehensive overview</a></h2> <p class="post-meta"> by <span class="author vcard"><a href="https://objectbox.io/author/vivien/" title="Posts by Vivien" rel="author">Vivien</a></span> | <span class="published">May 7, 2024</span> | <a href="https://objectbox.io/category/android/" rel="category tag">Android</a>, <a href="https://objectbox.io/category/edge-database/" rel="category tag">Edge Database</a>, <a href="https://objectbox.io/category/iot/" rel="category tag">IoT</a>, <a href="https://objectbox.io/category/mobile-database/" rel="category tag">Mobile Database</a> | <span class="comments-number"><a href="https://objectbox.io/sqlite-alternatives/#respond">2 comments</a></span></p><p><div class="et_pb_section et_pb_section_2 et_pb_with_background et_pb_fullwidth_section et_section_regular" > <section class="et_pb_module et_pb_fullwidth_header et_pb_fullwidth_header_0 et_hover_enabled et_pb_text_align_left et_pb_bg_layout_dark"> <div class="et_pb_fullwidth_header_container left"> <div class="header-content-container center"> <div class="header-content"> <h1 class="et_pb_module_header">SQLite and SQLite alternatives - databases for the Mobile and IoT edge</h1> <span class="et_pb_fullwidth_header_subhead">Overview of SQLite and SQLite alternatives as part of the mobile / edge database market with a comprehensive comparison matrix (last updated autumn 2024)</span> <div class="et_pb_header_content_wrapper"></div> </div> </div> </div> <div class="et_pb_fullwidth_header_overlay"></div> <div class="et_pb_fullwidth_header_scroll"></div> </section> </div><div class="et_pb_section et_pb_section_3 et_section_regular" > <div class="et_pb_row et_pb_row_42"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_59 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_55 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Digitalization is still on the rise, as is the number of connected devices (from </span><a href="https://www.statista.com/statistics/1101442/iot-number-of-connected-devices-worldwide/"><span style="font-weight: 400;">13 billion connected IoT devices</span></a><span style="font-weight: 400;"> + </span><a href="https://www.statista.com/statistics/245501/multiple-mobile-device-ownership-worldwide/#:~:text=In%202021%2C%20the%20number%20of,devices%20compared%20to%202020%20levels."><span style="font-weight: 400;">15 billion mobile devices operating</span></a><span style="font-weight: 400;"> in 2021 already). Data volumes are growing accordingly ( </span><a href="https://earthweb.com/how-much-data-is-created-every-day/"><span style="font-weight: 400;">3.5 quintillion bytes of data is produced daily in 2023</span></a><span style="font-weight: 400;">), and centralised (typically cloud-based) computing canbot support all the current needs. This has led to </span><a href="https://objectbox.io/why-edge-computing-is-more-relevant-in-2021-than-ever/"><span style="font-weight: 400;">a shift from the cloud to the edge</span></a><span style="font-weight: 400;">. </span></p> <p><span style="font-weight: 400;">Therefore, there is a renewed need for on-device databases like SQLite and SQLite alternatives to persist and manage data on edge devices. On top, due to the distributed nature of the edge, there is a need to manage data flows to / from and between edge devices. This can be done with</span><span style="font-size: 15px;"> </span><a href="https://objectbox.io/what-is-an-edge-database-and-why-do-you-need-one/" style="font-size: 15px;">Edge Databases</a><span style="font-size: 15px;"> that provide a </span><a href="https://sync.objectbox.io/" style="font-size: 15px;">Data Sync</a><span style="font-size: 15px;"> functionality (SQLite alternatives only, as SQLite doesn’t support this). Below, we’ll take a close look at SQLite and its alternatives with consideration of today’s needs.</span></p> <p><span style="font-weight: 400;"></span></p> <h2><span style="font-weight: 400;">Databases for the Edge</span></h2> <p><span style="font-weight: 400;">While being quite an established market with many players, the database market is still growing consistently and significantly. The reason is that databases are at the <strong>core of almost any digital solution</strong>, and </span><a href="https://objectbox.io/connecting-database-performance-and-business-value/"><span style="font-weight: 400;">directly impact business value and </span></a><span style="font-weight: 400;">therefore never going out of fashion. With the rapid evolvements in the tech industry, however, databases evolve too. This, in turn, yields new database types and categories. We have seen the rise of NoSQL databases in the last 20 years, and more recently some novel database technologies, like graph databases and time-series databases, and </span><a href="https://objectbox.io/vector-database/"><span style="font-weight: 400;">vector databases</span></a><span style="font-weight: 400;">.</span></p> <p><span style="font-size: 15px;"><span style="font-weight: 400;">With AI and accordingly vector databases being all the hype since 2022/2023, the database market is indeed experiencing fresh attention. Due to the speed with which AI is evolving, we’re however already <a href="https://www.linkedin.com/pulse/power-vector-databases-mobile-restricted-devices-dollinger-aquje/">leaving the “mainframe era of AI” and entering the distributed Edge AI space</a>. With SQLite not supporting vector search and related vector database functions, this adds a new dimension to this ever-present topic. There is a need for <a href="https://objectbox.io/the-first-on-device-vector-database-objectbox-4-0/">local, on-device vector databases</a> to support on-device AI that’s independent of an Internet connection, reliably fast, and keeps data on the device (100% private). </span><br /></span></p> <p>We’re expecting <a href="https://www.linkedin.com/pulse/power-vector-databases-mobile-restricted-devices-dollinger-aquje/">vector databases that run locally on a wide variety of devices (aka Edge Vector Databases)</a> to become the next big thing, surpassing even what we have seen happening in the server vector database space. And we wouldn’t be astonished if the synchronizing of vector data is a game changer for Edge AI. Time will tell 😉</p> <p><span style="font-weight: 400;"><br />Both, the shift back from a centralised towards a decentralised paradigm, and the growing number of restricted devices call for a “new type” of an established database paradigm. SQLite has been around for more than 20 years and for good reason, but the current market shift back to decentralized computing happens in a new environment with new requirements. Hence, the need for a “new” database type, based on a well-established database type: “Edge databases”. Accordingly, a need for SQLite alternatives that consider the need for decentralized data flows and AI functionalities (depending on the use case of course; after all SQLite is a great database).</span></p></div> </div><div class="et_pb_module et_pb_image et_pb_image_21"> <span class="et_pb_image_wrap "><img decoding="async" width="1024" height="435" src="https://objectbox.io/wordpress/wp-content/uploads/2024/05/database-evolution-towards-edge-vector-databases-1024x435.jpg" alt="database-evolution-towards-edge-vector-databases" title="database-evolution-towards-edge-vector-databases" class="wp-image-258159" /></span> </div><div class="et_pb_module et_pb_toggle et_pb_toggle_0 et_pb_toggle_item et_pb_toggle_close"> <h5 class="et_pb_toggle_title">What is an Edge Database?</h5> <div class="et_pb_toggle_content clearfix"><p><span style="font-weight: 400;">Edge databases are a type of databases that are optimised for local data storage on restricted devices, like embedded devices, Mobile, and IoT. Because they run on-device, they need to be especially resource-efficient (e.g. with regards to battery use, CPU consumption, memory, and footprint). The term “edge database” is becoming more widely-used every year, especially in the IoT industry. In IoT, the difference between cloud-based databases and ones that run locally (</span><a href="https://objectbox.io/top-5-reasons-why-edge-computing-crucial-for-iot/"><span style="font-weight: 400;">and therefore support Edge Computing</span></a><span style="font-weight: 400;">) is crucial. </span></p></div> </div><div class="et_pb_module et_pb_toggle et_pb_toggle_1 et_pb_toggle_item et_pb_toggle_close"> <h5 class="et_pb_toggle_title">What is a Mobile Database?</h5> <div class="et_pb_toggle_content clearfix"><p><span style="font-weight: 400;">We look at mobile databases as a subset of edge databases that run on mobile devices. The difference between the two terms lies mainly in the supported operating systems / types of devices. Unless Android and iOS are supported, an edge database is not really suited for the mobile device / smartphone market. In this article, we will use the term “mobile database” only as “database that runs locally on a mobile (edge) device and stores data on the device”. </span><span style="font-weight: 400;">Therefore, we also refer to it as an </span><b>“on-device” database</b><span style="font-weight: 400;">.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_43"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_60 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_56 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>What are the advantages and disadvantages of working with SQLite?</h2> <p><span style="font-weight: 400;">SQLite is a </span><a href="https://en.wikipedia.org/wiki/Relational_database"><span style="font-weight: 400;">relational database</span></a><span style="font-weight: 400;"> that is clearly the most established database suitable to run on edge devices. Moreover, it is probably the only “established” mobile database. It was designed in 2000 by </span><a href="https://en.wikipedia.org/wiki/D._Richard_Hipp"><span style="font-weight: 400;">Richard Hipp</span></a><span style="font-weight: 400;"> and has been embedded with iOS and Android since the beginning. Now let’s have a quick look at its main advantages and disadvantages:</span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_57 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><table style="width: 100%; height: 5%;" border="1%"> <tbody> <tr style="height: 2,5%;"> <td style="width: 50%; height: 2,5%; text-align: center;">Advantages</td> <td style="width: 50%; height: 2,5%; text-align: center;"> Disadvantages</td> </tr> <tr style="height: 2,5%;"> <td style="width: 5-%; height: 2,5%; text-align: left;"> <ul> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">20+ years old (should be stable ;))</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Toolchain, e.g. DB browser</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">No dependencies, is included with Android and iOS</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Developers can define exactly the data schema they want</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Full control, e.g. handwritten SQL queries</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">SQL is a powerful and established query language, and SQLite supports most of it</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Debuggable data: developers can grab the database file and analyse it</span></li> </ul> </td> <td style="width: 50%; height: 2,5%; text-align: center;"> <ul> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">20+ years old ( less state-of-the-art tech)</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">Using SQLite means a lot of boilerplate code and thus inefficiencies ( maintaining long running apps can be quite painful)</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">No compile time checks (e.g. SQL queries)</span></li> <li style="text-align: left;"><span style="font-weight: 400;">SQL is another language to master, and can impact your app’s efficiency / performance significantly…</span><span style="font-weight: 400;"></span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">The performance of SQLite is unreliable</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">SQL queries can get long and complicated</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">Testability (how to mock a database?)</span></li> <li style="font-weight: 400; text-align: left;" aria-level="1"><span style="font-weight: 400;">Especially when database views are involved, maintainability may suffer with SQLite</span></li> </ul> </td> </tr> </tbody> </table> <p> </p></div> </div><div class="et_pb_module et_pb_text et_pb_text_58 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2>What are the SQLite alternatives?</h2> <p><span style="font-weight: 400;">There are a bunch of options for making your life easier, if you want to use SQLite. You can use an object abstraction on top of it, an object-Relational-Mapper (</span><a href="https://greenrobot.org/android/sqlite-access-with-an-orm-faq/"><span style="font-weight: 400;">ORM</span></a><span style="font-weight: 400;">), for instance </span><a href="http://greenrobot.org/greendao/"><span style="font-weight: 400;">greenDAO</span></a><span style="font-weight: 400;">, to avoid writing lots of SQL. However, you will typically still need to learn SQL and SQLite at some point. So what you really want is a full blown database alternative, like any of these: Couchbase Lite, Interbase, LevelDB, </span><a href="https://github.com/objectbox"><span style="font-weight: 400;">ObjectBox</span></a><span style="font-weight: 400;">, Oracle Berkeley DB, Mongo Realm, SnappyDB, SQL Anywhere, or UnQLite.</span></p> <p><span style="font-weight: 400;">While SQLite really is designed for small devices, people do run it on the server / cloud too. Actually, any database that runs efficiently locally, will be highly efficient on big servers too, making them a sustainable lightweight choice for some scenarios. However, for server / cloud databases, there are a lot of alternatives you can use as a replacement like e.g. </span><a href="https://en.wikipedia.org/wiki/MySQL"><span style="font-weight: 400;">MySQL</span></a><span style="font-weight: 400;">, </span><a href="https://en.wikipedia.org/wiki/MongoDB"><span style="font-weight: 400;">MongoDB</span></a><span style="font-weight: 400;">, or </span><a href="https://en.wikipedia.org/wiki/Firebase"><span style="font-weight: 400;">Cloud Firestore</span></a><span style="font-weight: 400;">.</span></p> <p><span style="font-weight: 400;">Bear in mind that, if you are looking to host your database in the cloud with apps running on small distributed devices (e.g. mobile apps, IoT apps, any apps on embedded devices etc.), there are some difficulties. Firstly, this will result in higher latency, i.e. slow response-rates. Secondly, the </span><a href="https://objectbox.io/should-android-app-developers-care-about-edge-computing/"><span style="font-weight: 400;">offline capabilities</span></a><span style="font-weight: 400;"> will be highly limited or absent. As a result, you might have to deal with increased networking costs, which is not only reflected in dollars, </span><a href="https://objectbox.io/why-do-we-need-edge-computing-for-a-sustainable-future/"><span style="font-weight: 400;">but also CO2 emissions</span></a><span style="font-weight: 400;">. On top, it means all the data from all the different app users is stored in one central place. This means that any kind of data breach will affect all your and your users’ data. Most importantly, you will likely be giving your cloud / database provider rights to that data. (Consider reading the general terms diligently). If you care about privacy and data ownership, you might therefore want to consider a local database option, as in an Edge Database. This way you can decide, possibly limit, what data you sync to a central instance (like the cloud or an on-premise server). </span></p> <h2><span style="font-weight: 400;">SQLite alternatives Comparison Matrix</span></h2> <p><span style="font-weight: 400;">To give you an overview, we have compiled a comparison table including SQLite and SQLite alternatives. In this matrix we look at databases that we believe are apt to run on edge devices. Our rule of thumb is the databases’ ability to run on Raspberry Pi type size devices. <a href="https://objectbox.io/2024-sqlite-alternatives-comparison-matrix.htm" target="_blank" rel="noopener">If you’re reading this on mobile, click here to view the full matrix.</a></span></p></div> </div> </div> </div> </div><div class="et_pb_section et_pb_section_4 et_pb_fullwidth_section et_section_regular" > <div class="et_pb_module et_pb_fullwidth_code et_pb_fullwidth_code_0"> <div class="et_pb_code_inner"><html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Excel.Sheet> <meta name=Generator content="Microsoft Excel 15"> <link rel=File-List href="2024-10-sqlite-alternatives-comparison-matrix_files/filelist.xml"> <style id="Book1_4603_Styles"> <!--table {mso-displayed-decimal-separator:"\,"; mso-displayed-thousand-separator:"\.";} .font54603 {color:black; font-size:8.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0;} .xl154603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:general; vertical-align:bottom; mso-background-source:auto; mso-pattern:auto; white-space:nowrap;} .xl654603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl664603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl674603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#393939; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl684603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:.5pt solid black; border-right:.5pt solid black; border-bottom:none; border-left:.5pt solid black; background:white; mso-pattern:black none; white-space:normal;} .xl694603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:general; vertical-align:bottom; mso-background-source:auto; mso-pattern:auto; white-space:nowrap;} .xl704603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:1.0pt solid windowtext; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl714603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:1.0pt solid windowtext; background:white; mso-pattern:black none; white-space:normal;} .xl724603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:.5pt solid black; border-right:.5pt solid black; border-bottom:none; border-left:1.0pt solid windowtext; background:white; mso-pattern:black none; white-space:normal;} .xl734603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:nowrap;} .xl744603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl754603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:1.0pt solid windowtext; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl764603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl774603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:white; font-size:11.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:1.0pt solid windowtext; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:1.0pt solid windowtext; background:#46BDC6; mso-pattern:black none; white-space:normal;} .xl784603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:white; font-size:11.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:1.0pt solid windowtext; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:none; background:#46BDC6; mso-pattern:black none; white-space:normal;} .xl794603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:white; font-size:10.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:1.0pt solid windowtext; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:none; background:#46BDC6; mso-pattern:black none; white-space:normal;} .xl804603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:white; font-size:11.0pt; font-weight:700; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:1.0pt solid windowtext; border-right:1.0pt solid windowtext; border-bottom:1.0pt solid windowtext; border-left:none; background:#46BDC6; mso-pattern:black none; white-space:normal;} .xl814603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl824603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl834603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl844603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:none; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl854603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:nowrap;} .xl864603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:1.0pt solid windowtext; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl874603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:1.0pt solid windowtext; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl884603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl894603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl904603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl914603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:.5pt solid black; border-right:.5pt solid black; border-bottom:none; border-left:.5pt solid black; background:white; mso-pattern:black none; white-space:normal;} .xl924603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#17A6A6; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl934603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:9.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl944603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#0563C1; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:underline; text-underline-style:single; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:#DDF2F0; mso-pattern:black none; white-space:normal;} .xl954603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:#0563C1; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:underline; text-underline-style:single; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:1.0pt solid windowtext; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} .xl964603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:black; font-size:11.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Calibri, sans-serif; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:.5pt solid black; border-right:.5pt solid windowtext; border-bottom:.5pt solid windowtext; border-left:.5pt solid black; mso-background-source:auto; mso-pattern:auto; white-space:normal;} .xl974603 {padding-top:1px; padding-right:1px; padding-left:1px; mso-ignore:padding; color:windowtext; font-size:10.0pt; font-weight:400; font-style:normal; text-decoration:none; font-family:Roboto; mso-generic-font-family:auto; mso-font-charset:0; mso-number-format:General; text-align:center; vertical-align:middle; border-top:none; border-right:.5pt solid black; border-bottom:.5pt solid black; border-left:none; background:white; mso-pattern:black none; white-space:normal;} --> </style> </head> <body> <!--[if !excel]> <![endif]--> <!--The following information was generated by Microsoft Excel's Publish as Web Page wizard.--> <!--If the same item is republished from Excel, all information between the DIV tags will be replaced.--> <!-----------------------------> <!--START OF OUTPUT FROM EXCEL PUBLISH AS WEB PAGE WIZARD --> <!-----------------------------> <div id="Book1_4603" align=center x:publishsource="Excel"> <table border=0 cellpadding=0 cellspacing=0 width=1446 style='border-collapse: collapse;table-layout:fixed;width:1088pt'> <col width=102 style='mso-width-source:userset;mso-width-alt:3730;width:77pt'> <col width=238 style='mso-width-source:userset;mso-width-alt:8704;width:179pt'> <col class=xl694603 width=104 style='mso-width-source:userset;mso-width-alt: 3803;width:78pt'> <col width=70 style='mso-width-source:userset;mso-width-alt:2560;width:53pt'> <col width=122 style='mso-width-source:userset;mso-width-alt:4461;width:92pt'> <col width=83 style='mso-width-source:userset;mso-width-alt:3035;width:62pt'> <col width=64 style='width:48pt'> <col width=72 style='mso-width-source:userset;mso-width-alt:2633;width:54pt'> <col width=113 style='mso-width-source:userset;mso-width-alt:4132;width:85pt'> <col class=xl694603 width=118 style='mso-width-source:userset;mso-width-alt: 4315;width:89pt'> <col class=xl694603 width=113 style='mso-width-source:userset;mso-width-alt: 4132;width:85pt'> <col width=97 style='mso-width-source:userset;mso-width-alt:3547;width:73pt'> <col width=150 style='mso-width-source:userset;mso-width-alt:5485;width:113pt'> <tr height=61 style='height:45.75pt'> <td height=61 class=xl774603 width=102 style='height:45.75pt;width:77pt'>Edge Database</td> <td class=xl784603 width=238 style='width:179pt'>Short description</td> <td class=xl794603 width=104 style='width:78pt'>License / business model</td> <td class=xl784603 width=70 style='width:53pt'>Android / iOS*</td> <td class=xl784603 width=122 style='width:92pt'>Type of data stored</td> <td class=xl784603 width=83 style='width:62pt'>Central Data Sync</td> <td class=xl784603 width=64 style='width:48pt'>P2P Data Sync</td> <td class=xl784603 width=72 style='width:54pt'>Offline Sync (Edge)</td> <td class=xl784603 width=113 style='width:85pt'>Data level encryption</td> <td class=xl794603 width=118 style='width:89pt'>Flutter / Dart support</td> <td class=xl794603 width=113 style='width:85pt'>Vector Database (AI support)</td> <td class=xl784603 width=97 style='width:73pt'>Minimum Footprint size</td> <td class=xl804603 width=150 style='width:113pt'>Company</td> </tr> <tr height=100 style='mso-height-source:userset;height:75.6pt'> <td height=100 class=xl704603 width=102 style='height:75.6pt;width:77pt'>SQLite</td> <td class=xl654603 width=238 style='width:179pt'>C programming library; probably still 90% market share in the small devices space (personal assumption)</td> <td class=xl814603 width=104 style='width:78pt'><a href="https://en.wikipedia.org/wiki/Public_domain"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Public domain</span></a></td> <td class=xl654603 width=70 style='width:53pt'>embedded on iOS and Android</td> <td class=xl654603 width=122 style='width:92pt'>Relational</td> <td class=xl654603 width=83 style='width:62pt'>No</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No, but option to use SQLCipher to encrypt SQLite</td> <td class=xl654603 width=118 style='width:89pt'>Flutter plugins (ORMs) for SQLite, but nothing from Hwaci</td> <td class=xl654603 width=113 style='width:85pt'>No, but various early & unofficial extensions are available</td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl824603 width=150 style='width:113pt'><a href="https://sqlite.org/support.html"><span style='color:#17A6A6;text-decoration: none;font-family:Roboto;mso-generic-font-family:auto;mso-font-charset:0'>Hwaci</span></a></td> </tr> <tr height=114 style='mso-height-source:userset;height:85.5pt'> <td height=114 class=xl714603 width=102 style='height:85.5pt;width:77pt'>Couchbase Mobile / Lite</td> <td class=xl664603 width=238 style='width:179pt'>Embedded / portable database with P2P and central synchronization (sync) support; pricing upon request; some restrictions apply for the free version. Secure SSL.</td> <td class=xl934603 width=104 style='width:78pt'>Partly proprietary, partly open-source, Couchbase Lite is BSL 1.1</td> <td class=xl664603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl924603 width=122 style='width:92pt'>JSON Documents / NoSQL db</td> <td class=xl664603 width=83 style='width:62pt'>Yes</td> <td class=xl664603 width=64 style='width:48pt'>Yes</td> <td class=xl664603 width=72 style='width:54pt'>No</td> <td class=xl894603 width=113 style='width:85pt'><a href="https://www.zetetic.net/sqlcipher/"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Database encryption with SQLCipher (256-bit AES)</span></a></td> <td class=xl664603 width=118 style='width:89pt'>Unofficial Flutter plugin for Couchbase Lite Community Edition</td> <td class=xl664603 width=113 style='width:85pt'>No</td> <td class=xl664603 width=97 style='width:73pt'>< 3,5 MB</td> <td class=xl834603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Couchbase"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>Couchbase</span></a></td> </tr> <tr height=51 style='height:38.25pt'> <td height=51 class=xl704603 width=102 style='height:38.25pt;width:77pt'>InterBase ToGo / IBLite</td> <td class=xl674603 width=238 style='width:179pt'>Embeddable SQL database.</td> <td class=xl654603 width=104 style='width:78pt'>Proprietary</td> <td class=xl654603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl654603 width=122 style='width:92pt'>Relational</td> <td class=xl654603 width=83 style='width:62pt'>No</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>256 bit AES strength encryption</td> <td class=xl654603 width=118 style='width:89pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No</td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl824603 width=150 style='width:113pt'><a href="https://www.embarcadero.com/de/company/about-us"><span style='color:#17A6A6;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Embarcadero</span></a></td> </tr> <tr height=88 style='mso-height-source:userset;height:66.6pt'> <td height=88 class=xl724603 width=102 style='height:66.6pt;border-top:none; width:77pt'>LevelDB</td> <td class=xl684603 width=238 style='border-top:none;border-left:none; width:179pt'>Portable lightweight key-value store, NoSQL, no index support; benchmarks from 2011 have been removed unfortunately</td> <td class=xl914603 width=104 style='border-top:none;border-left:none; width:78pt'><a href="https://en.wikipedia.org/wiki/BSD_licenses"><span style='color:#17A6A6;font-size:10.0pt;text-decoration:none;font-family:Roboto; mso-generic-font-family:auto;mso-font-charset:0'>New BSD</span></a></td> <td class=xl684603 width=70 style='border-top:none;border-left:none; width:53pt'>Android / iOS</td> <td class=xl684603 width=122 style='border-top:none;border-left:none; width:92pt'>Key-value pairs / NoSQL db</td> <td class=xl684603 width=83 style='border-top:none;border-left:none; width:62pt'>No</td> <td class=xl684603 width=64 style='border-top:none;border-left:none; width:48pt'>No</td> <td class=xl684603 width=72 style='border-top:none;border-left:none; width:54pt'>No</td> <td class=xl684603 width=113 style='border-top:none;border-left:none; width:85pt'>No</td> <td class=xl684603 width=118 style='border-top:none;border-left:none; width:89pt'>Unofficial client that is very badly rated</td> <td class=xl684603 width=113 style='border-top:none;border-left:none; width:85pt'>No</td> <td class=xl684603 width=97 style='border-top:none;border-left:none; width:73pt'>< 1 MB</td> <td class=xl844603 width=150 style='width:113pt'><a href="https://github.com/orgs/Level/people"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>LevelDB Team</span></a></td> </tr> <tr height=68 style='height:51.0pt'> <td height=68 class=xl704603 width=102 style='height:51.0pt;width:77pt'>LiteDB</td> <td class=xl654603 width=238 style='width:179pt'>A .Net embedded NoSQL database</td> <td class=xl814603 width=104 style='width:78pt'><a href="https://en.wikipedia.org/wiki/MIT_License"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>MIT license</span></a></td> <td class=xl654603 width=70 style='width:53pt'>Android / iOS (with Xamarin only)</td> <td class=xl654603 width=122 style='width:92pt'>NoSQL document store, fully wirtten in .Net</td> <td class=xl654603 width=83 style='width:62pt'>No</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>Salted AES</td> <td class=xl654603 width=118 style='width:89pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No</td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl734603>LiteDB team</td> </tr> <tr height=101 style='mso-height-source:userset;height:76.35pt'> <td height=101 class=xl714603 width=102 style='height:76.35pt;width:77pt'>Realm DB<span style='mso-spacerun:yes'> </span></td> <td class=xl664603 width=238 style='width:179pt'>Embedded object database<span style='mso-spacerun:yes'> </span></td> <td class=xl894603 width=104 style='width:78pt'>Apache 2.0</td> <td class=xl664603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl904603 width=122 style='width:92pt'><a href="https://en.wikipedia.org/wiki/Object_Database"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>Object Database</span></a></td> <td class=xl664603 width=83 style='width:62pt'>deprecated</td> <td class=xl664603 width=64 style='width:48pt'>No</td> <td class=xl664603 width=72 style='width:54pt'>deprecated</td> <td class=xl664603 width=113 style='width:85pt'>Yes</td> <td class=xl974603 width=118 style='width:89pt'>Yes</td> <td class=xl664603 width=113 style='width:85pt'>No</td> <td class=xl854603><a href="https://stackoverflow.com/questions/51958150/what-is-the-application-size-impact-of-using-realm-db-in-swift-on-ios"><span style='color:#17A6A6;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>5 MB+</span></a></td> <td class=xl954603 width=150 style='width:113pt'><a href="https://www.mongodb.com/de-de/products/updates/product-support-deprecation">Acquired by MongoDB in 2019, Data Sync deprecated in 2024; DB still available as open source, not maintained</a></td> </tr> <tr height=104 style='mso-height-source:userset;height:78.0pt'> <td height=104 class=xl704603 width=102 style='height:78.0pt;width:77pt'>ObjectBox</td> <td class=xl964603 width=238 style='border-top:none;border-left:none; width:179pt'>NoSQL Edge Vector Database with out-of-the-box Data Sync for Mobile and IoT; fully ACID compliant; benchmarks available as open source.</td> <td class=xl814603 width=104 style='width:78pt'><a href="https://en.wikipedia.org/wiki/Apache_License"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Open Core (plus Apache 2.0 bindings)</span></a></td> <td class=xl654603 width=70 style='width:53pt'>Android / iOS / Linux / Windows / any POSIX</td> <td class=xl654603 width=122 style='width:92pt'>Object-oriented NoSQL edge database for high-performance on edge devices in Mobile and IoT</td> <td class=xl654603 width=83 style='width:62pt'>Yes</td> <td class=xl654603 width=64 style='width:48pt'>WIP</td> <td class=xl654603 width=72 style='width:54pt'>Yes</td> <td class=xl674603 width=113 style='width:85pt'>transport encryption; additional encryption upon request</td> <td class=xl814603 width=118 style='width:89pt'><a href="https://pub.dev/packages/objectbox"><span style='color:#17A6A6; font-size:10.0pt;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Yes</span></a></td> <td class=xl944603 width=113 style='width:85pt'><a href="https://objectbox.io/the-first-on-device-vector-database-objectbox-4-0/">First local vector database fo on-device Edge AI released May 2024</a></td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl824603 width=150 style='width:113pt'><a href="https://objectbox.io/"><span style='color:#17A6A6;text-decoration:none; font-family:Roboto;mso-generic-font-family:auto;mso-font-charset:0'>ObjectBox</span></a></td> </tr> <tr height=91 style='mso-height-source:userset;height:68.45pt'> <td height=91 class=xl714603 width=102 style='height:68.45pt;width:77pt'>Oracle Database Lite</td> <td class=xl664603 width=238 style='width:179pt'>Portable with P2P and central sync support as well as support for sync with SQLite</td> <td class=xl664603 width=104 style='width:78pt'>Proprietary</td> <td class=xl664603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl664603 width=122 style='width:92pt'>Relational</td> <td class=xl664603 width=83 style='width:62pt'>Yes</td> <td class=xl664603 width=64 style='width:48pt'>Yes</td> <td class=xl664603 width=72 style='width:54pt'>No</td> <td class=xl664603 width=113 style='width:85pt'>128-bit AES Standard encrytion</td> <td class=xl664603 width=118 style='width:89pt'>No</td> <td class=xl664603 width=113 style='width:85pt'>No</td> <td class=xl664603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl834603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Oracle_Corporation"><span style='color:#17A6A6;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Oracle Corporation</span></a></td> </tr> <tr height=94 style='mso-height-source:userset;height:70.7pt'> <td height=94 class=xl704603 width=102 style='height:70.7pt;width:77pt'>SQL Anywhere</td> <td class=xl814603 width=238 style='width:179pt'><a href="https://www.sapstore.com/solutions/99017/SAP-SQL-Anywhere"><span style='color:#17A6A6;font-size:10.0pt;text-decoration:none;font-family:Roboto; mso-generic-font-family:auto;mso-font-charset:0'>Embedded / portable database with central snyc support with a stationary database, pricing now available here</span></a></td> <td class=xl654603 width=104 style='width:78pt'>Proprietary</td> <td class=xl654603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl884603 width=122 style='width:92pt'><a href="https://en.wikipedia.org/wiki/Relational_database"><span style='color:#17A6A6;text-decoration:none;font-family:Roboto;mso-generic-font-family: auto;mso-font-charset:0'>Relational</span></a></td> <td class=xl654603 width=83 style='width:62pt'>Yes, tied to using other SAP tech though (we believe)</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>AES-FIPS cipher encryption for full database or selected tables</td> <td class=xl654603 width=118 style='width:89pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No</td> <td class=xl654603 width=97 style='width:73pt'> </td> <td class=xl824603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Sybase"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>SAP (originally Sybase)</span></a></td> </tr> <tr height=104 style='mso-height-source:userset;height:78.6pt'> <td height=104 class=xl714603 width=102 style='height:78.6pt;width:77pt'>UnQLite</td> <td class=xl664603 width=238 style='width:179pt'>Portable lightweight embedded db; self-contained C library without dependency.</td> <td class=xl664603 width=104 style='width:78pt'>2-Clause BSD</td> <td class=xl664603 width=70 style='width:53pt'>Android / iOS</td> <td class=xl664603 width=122 style='width:92pt'>Key-value pairs / JSON store / NoSQL db</td> <td class=xl664603 width=83 style='width:62pt'>No</td> <td class=xl664603 width=64 style='width:48pt'>No</td> <td class=xl664603 width=72 style='width:54pt'>No</td> <td class=xl664603 width=113 style='width:85pt'>128-bit or 256-bit AES standard encryption</td> <td class=xl664603 width=118 style='width:89pt'>not yet; might be coming though; there was a 0.0.1 released some time ago</td> <td class=xl664603 width=113 style='width:85pt'>No</td> <td class=xl664603 width=97 style='width:73pt'>~ 1.5 MB</td> <td class=xl834603 width=150 style='width:113pt'><a href="http://www.symisc.net/"><span style='color:#17A6A6;text-decoration: none;font-family:Roboto;mso-generic-font-family:auto;mso-font-charset:0'>Symisc systems</span></a></td> </tr> <tr height=86 style='mso-height-source:userset;height:64.7pt'> <td height=86 class=xl704603 width=102 style='height:64.7pt;width:77pt'>extremeDB</td> <td class=xl654603 width=238 style='width:179pt'>Embedded relational database</td> <td class=xl654603 width=104 style='width:78pt'>Proprietary</td> <td class=xl654603 width=70 style='width:53pt'>iOS</td> <td class=xl654603 width=122 style='width:92pt'>In-memory relational DB, hybrid persistence</td> <td class=xl654603 width=83 style='width:62pt'>No</td> <td class=xl654603 width=64 style='width:48pt'>No</td> <td class=xl654603 width=72 style='width:54pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>AES encryption</td> <td class=xl654603 width=118 style='width:89pt'>No</td> <td class=xl654603 width=113 style='width:85pt'>No</td> <td class=xl654603 width=97 style='width:73pt'>< 1 MB</td> <td class=xl744603 width=150 style='width:113pt'>McObject LLC</td> </tr> <tr height=88 style='mso-height-source:userset;height:66.6pt'> <td height=88 class=xl714603 width=102 style='height:66.6pt;width:77pt'>redis DB</td> <td class=xl664603 width=238 style='width:179pt'>High-performance in-memory Key Value store with optional durability</td> <td class=xl664603 width=104 style='width:78pt'>Three clause BSD license, RSAL and Proprietary</td> <td class=xl664603 width=70 style='width:53pt'>No</td> <td class=xl664603 width=122 style='width:92pt'>K/V in-memory store, typically used as cache</td> <td class=xl664603 width=83 style='width:62pt'>No</td> <td class=xl664603 width=64 style='width:48pt'>No</td> <td class=xl664603 width=72 style='width:54pt'>No</td> <td class=xl664603 width=113 style='width:85pt'>TLS/SSL-based encryption can be enabled for data in motion.</td> <td class=xl664603 width=118 style='width:89pt'>Unofficial redis Dart client available</td> <td class=xl664603 width=113 style='width:85pt'>No on-device vector database, but cloud vector support</td> <td class=xl664603 width=97 style='width:73pt'>An empty instance uses ~ 3MB of memory</td> <td class=xl834603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Redis_Labs"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>redislabs (the original author of redis left in 2020)</span></a></td> </tr> <tr height=84 style='mso-height-source:userset;height:63.6pt'> <td height=84 class=xl754603 width=102 style='height:63.6pt;width:77pt'>Azure SQL Edge<font class="font54603"> </font></td> <td class=xl874603 width=238 style='width:179pt'><a href="https://objectbox.io/what-is-an-edge-database-and-why-do-you-need-one/"><span style='color:#17A6A6;font-size:10.0pt;text-decoration:none;font-family:Roboto; mso-generic-font-family:auto;mso-font-charset:0'>Designed as a SQL database for the IoT edge; however, due to the footprint it is no Edge Database</span></a></td> <td class=xl874603 width=104 style='width:78pt'><a href="https://en.wikipedia.org/wiki/Proprietary_software"><span style='color:#17A6A6;font-size:10.0pt;text-decoration:none;font-family:Roboto; mso-generic-font-family:auto;mso-font-charset:0'>Proprietary</span></a></td> <td class=xl764603 width=70 style='width:53pt'>No</td> <td class=xl764603 width=122 style='width:92pt'>Relational DB for IoT</td> <td class=xl764603 width=83 style='width:62pt'>No</td> <td class=xl764603 width=64 style='width:48pt'>No</td> <td class=xl764603 width=72 style='width:54pt'>No</td> <td class=xl764603 width=113 style='width:85pt'>will provide encryption</td> <td class=xl764603 width=118 style='width:89pt'>No</td> <td class=xl764603 width=113 style='width:85pt'>Not on-device</td> <td class=xl764603 width=97 style='width:73pt'>500 MB+</td> <td class=xl864603 width=150 style='width:113pt'><a href="https://en.wikipedia.org/wiki/Microsoft"><span style='color:#17A6A6; text-decoration:none;font-family:Roboto;mso-generic-font-family:auto; mso-font-charset:0'>Microsoft</span></a></td> </tr> <![if supportMisalignedColumns]> <tr height=0 style='display:none'> <td width=102 style='width:77pt'></td> <td width=238 style='width:179pt'></td> <td width=104 style='width:78pt'></td> <td width=70 style='width:53pt'></td> <td width=122 style='width:92pt'></td> <td width=83 style='width:62pt'></td> <td width=64 style='width:48pt'></td> <td width=72 style='width:54pt'></td> <td width=113 style='width:85pt'></td> <td width=118 style='width:89pt'></td> <td width=113 style='width:85pt'></td> <td width=97 style='width:73pt'></td> <td width=150 style='width:113pt'></td> </tr> <![endif]> </table> </div> <!-----------------------------> <!--END OF OUTPUT FROM EXCEL PUBLISH AS WEB PAGE WIZARD--> <!-----------------------------> </body> </html> </div> </div> </div><div class="et_pb_section et_pb_section_5 et_section_regular" > <div class="et_pb_row et_pb_row_44"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_61 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_59 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">If you are interested in an indication of the diffusion rate of databases, check out the following database popularity ranking: </span><a href="http://db-engines.com/en/ran"><span style="font-weight: 400;">http://db-engines.com/en/ran</span></a><span style="font-weight: 400;">. If you are interested to learn more about SQLite, </span><a href="https://corecursive.com/066-sqlite-with-richard-hipp/"><span style="font-weight: 400;">there is a great Podcast interview with Richard Hipp that is worthwhile listening to</span></a><span style="font-weight: 400;">.</span></p> <p><span style="font-weight: 400;">Is there anything we’ve missed? What do you agree and disagree with? Please share your thoughts with us via </span><a href="https://twitter.com/ObjectBox_io"><span style="font-weight: 400;">Twitter</span></a><span style="font-weight: 400;"> or email us on contact[at]objectbox.io. </span></p> <p><span style="font-weight: 400;">Make sure to check out the </span><a href="https://github.com/objectbox"><span style="font-weight: 400;">ObjectBox Database</span></a><span style="font-weight: 400;"> & try out </span><a href="https://objectbox.io/sync/"><span style="font-weight: 400;">ObjectBox Sync</span></a><span style="font-weight: 400;">. You can get started in minutes and it’s perfect if you are using an object-oriented programming language, as it empowers you to work with your objects within the database. More than 1,000,000 developers already use this Edge </span><a href="https://objectbox.io/embedded-database/"><span style="font-weight: 400;">Database designed specifically for high performance on small, connected, embedded devices</span></a><span style="font-weight: 400;">.</span></p></div> </div> </div> </div> </div><div class="et_pb_section et_pb_section_6 et_section_regular" > <div class="et_pb_row et_pb_row_45"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_62 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_button_module_wrapper et_pb_button_2_wrapper et_pb_button_alignment_center et_pb_module "> <a class="et_pb_button et_pb_button_2 et_hover_enabled et_pb_bg_layout_light" href="https://objectbox.io/offline-first-mobile-database/" target="_blank" data-icon="9">Start Using an Edge DB now</a> </div> </div> </div> </div></p> </article> <article id="post-222692" class="et_pb_post post-222692 post type-post status-publish format-standard has-post-thumbnail hentry category-edge-computing category-insights category-iot category-mobile-database tag-edge-database"> <a class="entry-featured-image-url" href="https://objectbox.io/what-is-an-edge-database-and-why-do-you-need-one/"> <img src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/why-you-need-an-edge-database-1080x628.jpg" alt="What is an Edge Database, and why do you need one?" class="" width="1080" height="675" /> </a> <h2 class="entry-title"><a href="https://objectbox.io/what-is-an-edge-database-and-why-do-you-need-one/">What is an Edge Database, and why do you need one?</a></h2> <p class="post-meta"> by <span class="author vcard"><a href="https://objectbox.io/author/vivien/" title="Posts by Vivien" rel="author">Vivien</a></span> | <span class="published">May 30, 2023</span> | <a href="https://objectbox.io/category/edge-computing/" rel="category tag">Edge Computing</a>, <a href="https://objectbox.io/category/insights/" rel="category tag">Insights</a>, <a href="https://objectbox.io/category/iot/" rel="category tag">IoT</a>, <a href="https://objectbox.io/category/mobile-database/" rel="category tag">Mobile Database</a></p><div class="et_pb_section et_pb_section_7 et_section_regular" > <div class="et_pb_row et_pb_row_46"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_63 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_60 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3>Edge Databases – from trends to use cases</h3> <p><span style="font-weight: 400;">Data is decentralized. Cloud computing is centralized. </span><span style="font-weight: 400;">Forcing the decentralized world into the centralized cloud topology is not only inefficient, but also </span><a href="https://objectbox.io/why-do-we-need-edge-computing-for-a-sustainable-future/" target="_blank" rel="noopener"><span style="font-weight: 400;">economically, ecologically and socially wasteful</span></a><span style="font-weight: 400;"> – and sometimes simply impossible.</span></p> <p><span style="font-weight: 400;">To drive digitization and extract value from decentralized data, we need to give the cloud an edge, or more precisely add Edge Computing. </span><a href="https://objectbox.io/what-is-edge-computing/" target="_blank" rel="noopener"><span style="font-weight: 400;">Edge computing</span></a><span style="font-weight: 400;"> is a decentralized topology for storing and processing data as close as possible to the data source, i.e., the place where the data is produced, at the edge of the network.</span></p> <p><span style="font-weight: 400;">Valuable data is increasingly generated in a decentralized manner – outside traditional and centralized data centers and cloud environments.</span><span style="font-weight: 400;"> The dominance of centralized cloud computing approaches slows down digitization and the use of this existing decentralized data. Therefore, according to Gartner (2023) “</span><a href="https://www.gartner.com/en/documents/4263499" target="_blank" rel="noopener"><span style="font-weight: 400;">Edge computing is integral to digital transformation</span></a><span style="font-weight: 400;">”, and we need infrastructure technologies for the edge that enable developers to quickly and reliably work with decentralized edge data.</span></p> <p><span style="font-weight: 400;">Edge Database (Foundation for Edge Data Management) is a new type of database that addresses these requirements. Developers need </span><a href="https://github.com/objectbox" target="_blank" rel="noopener"><span style="font-weight: 400;">fast local data persistence and decentralized data flows (Data Sync)</span></a><span style="font-weight: 400;"> to implement edge solutions. Edge Databases solve these core edge functionalities out-of-the-box, allowing application developers to quickly implement edge solutions.</span></p></div> </div><div class="et_pb_with_border et_pb_module et_pb_text et_pb_text_61 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3>Table of Contents</h3> <p><a href="#trendsEdgeComputing"><span style="font-weight: 400;">Megatrend to</span> decentralized Edge Computing</a><br /><a href="#EdgeSoftwareInfastructureNeeded">Urgently needed: Software infrastructure for Edge Computing</a><br /><a href="#WhatIsAnEdgeDatabase">What is an Edge Database?</a><br /><a href="#NeedForAnEdgeDatabase">When do you need an Edge Database?</a><br /><a href="#EdgeDatabaseUseCase">Edge Database Use Case Example in Manufacturing</a><br /><a href="#EdgeDatabaseSummary">The Future of Edge Databases</a> <span style="font-weight: 400;"></span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_47"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_64 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_62 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2 id="trendsEdgeComputing"><span style="font-weight: 400;">Megatrend to decentralized Edge Computing</span></h2> <p><span style="font-weight: 400;">By 2030, <a href="https://www.statista.com/statistics/802690/worldwide-connected-devices-by-access-technology/" target="_blank" rel="noopener">30+ billion IoT devices</a> will be creating ~4.6 trillion GB of data per day. The growing numbers of devices and data volume, variety, and velocity, as well as bandwidth infrastructure limitations, make it infeasible to store and process all data in a centralized cloud. On top, new use cases come with new requirements, a centralized cloud infrastructure cannot meet. For example, soft and hard response rate requirements, offline-functionality, and security and data protection regulations.</span></p></div> </div><div class="et_pb_module et_pb_image et_pb_image_22"> <span class="et_pb_image_wrap "><img decoding="async" width="1024" height="531" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/trends-driving-edge-1024x531.png" alt="trends-driving-edge-computing" title="trends-driving-edge" class="wp-image-222695" /></span> </div><div class="et_pb_module et_pb_text et_pb_text_63 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">These trends accelerate the shift away from centralized cloud computing to a decentralized edge computing topology. Edge computing refers to decentralized data processing at the “edge” of the network. For example, in a car, on a machine, on a smartphone, or in a building. Hardware specifications do not capture the definition of an “edge device”. The crucial point is rather the decentralized use of data at, or as close as possible to, the data source.<br /></span></p> <p><span style="font-weight: 400;">Edge computing itself is not a technology but a topology, and according to McKinsey, one of the <a href="https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/the-top-trends-in-tech" target="_blank" rel="noopener">top growing trends in tech in 2021</a>. The technologies needed to implement the edge computing topology are still inadequate. More specifically, there is a gap in basic “core” edge technologies, so-called “software infrastructure”. This gap is one of the main reasons for the failure of edge projects.<br /></span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_48"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_65 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_64 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2 id="EdgeSoftwareInfastructureNeeded"><span style="font-weight: 400;">Needed: Infrastructure Software for Edge Computing</span></h2> <p><span style="font-weight: 400;">With computing shifting to the edge of the network, the needs of this decentralized topology become clear:</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_49"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_66 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_23"> <span class="et_pb_image_wrap "><picture decoding="async" title="hugh performance db" class="wp-image-51800"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/08/fast-database-teal-300x300.png.webp"/> <img decoding="async" width="300" height="300" src="https://objectbox.io/wordpress/wp-content/uploads/2020/08/fast-database-teal-300x300.png" alt="hugh performance db"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_67 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_65 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><strong>Need for fast local data storage</strong></h3> <p><span style="font-weight: 400;">→ i.e. a machine on the factory floor collects data on </span><span style="font-weight: 400;">stiffness, friction, pressure points. There is limited space on the device, and typically no connection to the Internet. Even with an Internet connection, high data rates quickly push the available bandwidth, as well as associated networking / <a href="https://a16z.com/2019/11/15/the-end-of-cloud-computing-2/" target="_blank" rel="noopener">cloud costs</a>, to the limit. To be able to use this data, it must be persisted in a structured manner at the edge, e.g. stored locally in a database.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_50"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_68 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_24"> <span class="et_pb_image_wrap "><picture decoding="async" title="feedback dialogue icon" class="wp-image-52892"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/12/migration_teal-300x300.png.webp"/> <img decoding="async" width="300" height="300" src="https://objectbox.io/wordpress/wp-content/uploads/2020/12/migration_teal-300x300.png" alt="feedback dialogue icon"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_69 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_66 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><strong>Need for reliable on-device data flows</strong></h3> <p><span style="font-weight: 400;">→ i.e. the car is an edge device consisting of many control units. Therefore, data must be stored on multiple control units. In order to access and use the data within several of the control units of the car, the data must be selectively <a href="https://objectbox.io/what-is-data-synchronization-how-to-keep-data-in-sync/" target="_blank" rel="noopener">synchronized</a> between the devices. A centralized structure and thus a single point of failure is unthinkable.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_51"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_70 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_25"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="data sync" class="wp-image-51801"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2020/08/sync-icon-teal-295x300.png.webp"/> <img loading="lazy" decoding="async" width="295" height="300" src="https://objectbox.io/wordpress/wp-content/uploads/2020/08/sync-icon-teal-295x300.png" alt="data sync"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_71 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_67 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><strong>Need for edge-to-edge-to-cloud data flows</strong></h3> <p><strong><span style="font-weight: 400;">→ i.e. in a manufacturing hall: Typically, you will find any number of diverse devices from sensors to brownfield to greenfield devices, and no internet connectivity. At the same time, there are diverse employee devices such as tablets or smartphones, as well as central PCs, and a cloud. To extract value from the data, it must be available in raw, aggregated, or summary form, in different places. This means it needs to be<a href="https://medium.com/@vivien_44789/a-developers-guide-to-bi-directional-data-sync-for-mobile-and-iot-apps-8254d8ff70dd"> synchronized efficiently</a> and selectively, with possible conflicts resolved.</span></strong><span style="font-weight: 400;"></span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_52"> <div class="et_pb_column et_pb_column_1_3 et_pb_column_72 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_image et_pb_image_26"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="puzzle-teal" class="wp-image-225832"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2023/02/puzzle-teal-300x300.png.webp"/> <img loading="lazy" decoding="async" width="300" height="300" src="https://objectbox.io/wordpress/wp-content/uploads/2023/02/puzzle-teal-300x300.png" alt="types-of-data-on-edge-flexibility"/> </picture> </span> </div> </div><div class="et_pb_column et_pb_column_2_3 et_pb_column_73 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_68 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3><strong>Need for flexible edge data management</strong></h3> <p><strong><span style="font-weight: 400;">→ e.g. with the rise of IoT, time-series data have become common. </span><span style="font-weight: 400;">However, time series data alone is usually not sufficient, and needs to be combined with other data structures (<a href="https://objectbox.io/time-series-database/" target="_blank" rel="noopener">like objects</a>) to add value. </span><span style="font-weight: 400;">At the same time, a push to standardize data formats in industries (e.g. VSS in automotive or Umati in Industrial IoT) </span><span style="font-weight: 400;">requires that the database supports flexible data structures.</span></strong><span style="font-weight: 400;"></span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_53"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_74 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_69 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Developing solutions without software infrastructure on an individual level is possible, but has many drawbacks:</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_54"> <div class="et_pb_column et_pb_column_2_5 et_pb_column_75 et_pb_css_mix_blend_mode_passthrough"> <div class="et_pb_module et_pb_text et_pb_text_70 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;">Custom in-house implementations are cumbersome, slow, costly, and typically scale poorly. Oftentimes, applications or certain feature sets become unfeasible to deliver because of the lack of core software infrastructure. Legacy code and individual workarounds create problems over the lifetime of a product. Instead of a thriving ecosystem, only a few big players are able to implement edge solutions. Innovation and creativity are limited. An edge database is part of the solution and enables the entire edge ecosystem to build edge applications faster, cheaper and more efficiently.<br /></span></p> <p><span style="font-weight: 400;"></span></p></div> </div> </div><div class="et_pb_column et_pb_column_3_5 et_pb_column_76 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_image et_pb_image_27"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="lack-of-tech1" class="wp-image-222696"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2021/06/lack-of-tech1-1024x779.png.webp"/> <img loading="lazy" decoding="async" width="1024" height="779" src="https://objectbox.io/wordpress/wp-content/uploads/2021/06/lack-of-tech1-1024x779.png" alt="lack-of-core-tech-for-the-edge"/> </picture> </span> </div> </div> </div><div class="et_pb_row et_pb_row_55"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_77 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_71 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2 id="WhatIsAnEdgeDatabase"><span style="font-weight: 400;">What is an Edge Database?</span></h2> <p><span style="font-weight: 400;">An Edge Database is a type of database specifically tailored to the unique requirements of the Edge Computing topology. Edge Databases run directly on-device, locally, and make it easy for app developers to access decentralized data from edge devices when and where needed. Using an Edge Database removes the burden of implementing ways to </span><a href="https://objectbox.io/sync/" target="_blank" rel="noopener"><span style="font-weight: 400;">synchronize data</span></a><span style="font-weight: 400;">, which is non-trivial, time-consuming, risky, and brings ongoing maintenance needs. Let’s look at this in more detail:</span></p> <p><span style="font-weight: 400;">First, an Edge Database is optimized for resource efficiency (CPU, memory, …) and </span><a href="https://objectbox.io/connecting-database-performance-and-business-value-a-fast-edge-database-saves-money/" target="_blank" rel="noopener"><span style="font-weight: 400;">performance</span></a><span style="font-weight: 400;"> on resource-constrained devices (embedded devices, IoT, mobile). It has a small footprint of a few megabytes max. Traditional databases such as MySQL or MongoDB are too large and slow for typical edge devices, making them unsuitable for computing at the edge. Nevertheless, with integrations like the one <a href="https://objectbox.io/bi-directional-offline-first-data-sync-with-mongodb-and-objectbox/">between ObjectBox and MongoDB</a>, developers can now combine ObjectBox’s on-device efficiency and offline-first capabilities of Edge Databases with MongoDB’s scalable cloud platform to enable seamless, bi-directional synchronization between the edge and the cloud.</span></p> <p><span style="font-weight: 400;">An edge device without data flows to/from other devices is just a data island with very limited utility. Accordingly, an Edge Database must support the management of decentralized data flows. There is no more efficient way than at the database level. This ideally includes a range of conflict resolution strategies due to the decentralized and multi-directional structure of the Edge.</span> </p> <p>Last not least, data security is of growing importance and data in motion needs to be protected. Data at rest is on a database level often protected by the OS and therefore less of a concern for most applications. </p> <p> </p></div> </div><div class="et_pb_module et_pb_image et_pb_image_28"> <span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="2881" height="1376" src="https://objectbox.io/wordpress/wp-content/uploads/2024/12/edgeDatabaseDefinition2024-scaled.jpg" alt="What is an Edge Database?" title="edgeDatabaseDefinition2024" class="wp-image-260962" /></span> </div> </div> </div><div class="et_pb_row et_pb_row_56"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_78 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_72 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2 id="NeedForAnEdgeDatabase"><span style="font-weight: 400;">When do you need an Edge Database?</span></h2> <p><span style="font-weight: 400;">Most IoT applications need to store and synchronize data. An Edge Database is always useful when functions / applications are planned that:</span></p> <ul> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">should work offline and independent of an internet connection</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">need to guarantee fast response times</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">work with a lot of, possibly high-frequency data</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">need to serve many devices at the same time</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">need historical data</span></li> </ul> <p><span style="font-weight: 400;">In addition, developers also often decide to use an Edge Database to save time and nerves, or to be able to react quickly and flexibly to future requirements.</span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_57"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_79 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_73 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2 id="EdgeDatabaseUseCase"><span style="font-weight: 400;">Edge Database Use Case Example in Manufacturing</span></h2> <p><span style="font-weight: 400;">Today, you can find everything from low-frequency brownfield devices to high-frequency greenfield devices on a factory floor. As a rule, the machine controllers in use are not designed to store or transmit data. They usually lack not only the functionality, but also the resources to support this. Therefore, additional edge devices are often needed to collect, analyze and interpret the huge amounts of data that each machine produces on site. For such an edge device, rapid data persistence and ingestion, and efficient data flow from edge-to-edge and edge-to-cloud are at the heart of value creation. The clear separation of machine control and edge data processing unit ensures that there is no risk of unintentional interference with the machine controller. An edge device with a powerful edge database can support multiple use cases on the shop floor today:<br /></span></p></div> </div><div class="et_pb_module et_pb_image et_pb_image_29"> <span class="et_pb_image_wrap "><picture loading="lazy" decoding="async" title="2023-05-25-automated-iiot-slide-edge-db" class="wp-image-226234"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2023/05/2023-05-25-automated-iiot-slide-edge-db.jpg.webp"/> <img loading="lazy" decoding="async" width="1275" height="675" src="https://objectbox.io/wordpress/wp-content/uploads/2023/05/2023-05-25-automated-iiot-slide-edge-db.jpg" alt="manufacturing-edge-computing-use-case"/> </picture> </span> </div> </div> </div><div class="et_pb_row et_pb_row_58"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_80 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_74 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h3>1. Operational efficiency<span style="font-weight: 400;"></span></h3> <p><span style="font-weight: 400;">Process optimization along the line to increase quality and reduce damage. When the first machine in a production line uses a new batch of material, i.e. in sheet metal processing, one of the first steps is to cut a sheet to the required size. At this stage, the machine can already detect the differences in the metal compared to a previous batch (deviations are allowed within the DIN standard). With an Edge device this data can be evaluated, and the relevant information passed on to the next machine. With this data machines further down the line can avoid damage / breakpoints of the material.<br /></span></p> <h3>2. Condition monitoring</h3> <p><span style="font-weight: 400;">Continuous machine <a href="https://en.wikipedia.org/wiki/Condition_monitoring">condition monitoring</a> reduces downtime and increases maintenance efficiency. A constant stream of high-frequency machine data is compared against the fingerprint of the machine. Any slight deviation is immediately detected and reported. Catching deviations early reduces down-times and costly repairs.</span></p> <h3>3. Historical Data</h3> <p><span style="font-weight: 400;">Historical data is stored for learning and training to optimize the production line. With an Edge Database, the data is persisted and thus available in the event of faulty behavior. In case of an error, the data preceding the incident can be analyzed and used to find the causes and predict, or even avoid, such an error in the future. Chances are that “fuzzy expert knowledge” already available at the production site can be translated into deterministic rules when tested with these data sets.</span><span style="font-weight: 400;"></span></p></div> </div> </div> </div><div class="et_pb_row et_pb_row_59"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_81 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_text et_pb_text_75 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2><span style="font-weight: 400;">The future of Edge Databases </span></h2> <p><span style="font-weight: 400;">Edge computing provides numerous benefits and enables many applications and functionalities that are only possible with edge computing. However, only a few (usually large) players have been able to create value in edge computing projects, gaining competitive advantages. One reason is a lack of basic edge software. A thriving edge ecosystem necessitates edge software infrastructure that addresses the fundamental recurring needs of edge projects. Edge databases are a critical component in the development of such an ecosystem. </span></p> <p>Looking ahead, the emergence of<a href="https://objectbox.io/vector-database-for-ondevice-ai/"> on-device vector databases</a>, coupled with<a href="https://objectbox.io/the-rise-of-small-language-models-2/"> small language models (SLMs)</a>, is transforming the landscape of AI applications. These technologies enable AI apps to run directly on edge devices, <a href="https://objectbox.io/vector-database/">providing long-term memory, improving performance, and significantly reducing resource consumption</a>. By processing data locally, they eliminate the need for constant cloud connectivity, enhancing privacy and efficiency. Companies like Apple have already embraced on-device AI (<a href="https://arxiv.org/abs/2407.21075">Apple Intelligence</a>), showcasing its potential to deliver advanced functionalities seamlessly. This shift represents a game-changer, making AI more sustainable, scalable, and integrated into everyday use.</p></div> </div> </div> </div> </div> </article> <article id="post-223882" class="et_pb_post post-223882 post type-post status-publish format-standard has-post-thumbnail hentry category-edge-computing category-iot category-mobile-database category-sync category-tutorial tag-cross-platform-2 tag-edge-database tag-multi-platform"> <a class="entry-featured-image-url" href="https://objectbox.io/cross-platform-sync-example/"> <picture class=""> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2022/03/image-3-1080x675.jpg.webp"/> <img src="https://objectbox.io/wordpress/wp-content/uploads/2022/03/image-3-1080x675.jpg" alt="Cross platform Data Sync: a simple example" width="1080" height="675"/> </picture> </a> <h2 class="entry-title"><a href="https://objectbox.io/cross-platform-sync-example/">Cross platform Data Sync: a simple example</a></h2> <p class="post-meta"> by <span class="author vcard"><a href="https://objectbox.io/author/anna/" title="Posts by Anna" rel="author">Anna</a></span> | <span class="published">Mar 16, 2022</span> | <a href="https://objectbox.io/category/edge-computing/" rel="category tag">Edge Computing</a>, <a href="https://objectbox.io/category/iot/" rel="category tag">IoT</a>, <a href="https://objectbox.io/category/mobile-database/" rel="category tag">Mobile Database</a>, <a href="https://objectbox.io/category/sync/" rel="category tag">Sync</a>, <a href="https://objectbox.io/category/tutorial/" rel="category tag">Tutorial</a></p><p><div class="et_pb_section et_pb_section_8 et_section_regular" > <div class="et_pb_row et_pb_row_60"> <div class="et_pb_column et_pb_column_4_4 et_pb_column_82 et_pb_css_mix_blend_mode_passthrough et-last-child"> <div class="et_pb_module et_pb_video et_pb_video_1"> <div class="et_pb_video_box"><iframe title="Cross platform data sync with the ObjectBox database" width="1080" height="608" src="https://www.youtube.com/embed/Feiq46u3hH0?feature=oembed" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div> </div><div class="et_pb_module et_pb_text et_pb_text_76 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p><span style="font-weight: 400;"><a href="https://objectbox.io/sync/" target="_blank" rel="noopener">Cross platform data sync</a> can be simple: In this tutorial we will show you how you can easily sync data across devices.</span></p> <p><span style="font-weight: 400;">Built for fast and effortless data access on and across embedded devices from Mobile to IoT</span><span style="font-weight: 400;">, ObjectBox keeps data in sync between devices for you, with robust offline sync capabilities to handle network interruptions. The Database and Data Snyc works across platforms (iOS, Android, Linux, Rasbian, Windows, MacOS) and supports a variety of languages with easy native APIs (<a href="https://swift.objectbox.io/" target="_blank" rel="noopener">Swift</a>, <a href="https://github.com/objectbox/objectbox-java" target="_blank" rel="noopener">Java, Kotlin</a>, <a href="https://cpp.objectbox.io/" target="_blank" rel="noopener">C / C++</a>, <a href="https://pub.dev/packages/objectbox" target="_blank" rel="noopener">Flutter / Dart</a>, <a href="https://golang.objectbox.io/" target="_blank" rel="noopener">Golang</a>), providing seamless offline-first data sync across devices, regardless of the platform..</span></p> <p><span style="font-weight: 400;">For example, you can sync between an </span><span style="font-weight: 400;">Industrial IoT</span><span style="font-weight: 400;"> sensor app in Go and a C++ monitoring application – and a mobile Android app written in Kotlin or Java – and of course an iOS app written in Swift – and… you get the drift 😉</span></p> <p><span style="font-weight: 400;">ObjectBox is a high-performance embedded database for Edge Computing with integrated Data Sync. The <a href="https://github.com/objectbox" target="_blank" rel="noopener">ObjectBox database is quick to set up and free and easy to use</a>. Our powerful and intuitive APIs are a great match for multiplatform development environments.</span></p> <h2><b>Syncing data across devices – a task-list app example</b></h2> <p><span style="font-weight: 400;">In this tutorial, we are going to sync data across three instances of an example task-list app (written in C++, Go and Java).</span><a href="https://objectbox.io/sync/"><span style="font-weight: 400;"></span></a></p> <p><span style="font-weight: 400;">With the task-list app, users can create simple text-based tasks and mark them as done. It stores tasks together with their creation dates. There is also a parameter to store the date when the task was completed. It acts as a filter for users to only see unfinished tasks. </span></p> <p><span style="font-weight: 400;"> This app is a standard cross platform ObjectBox example that is available for all language bindings. Here are the repositories of each example app that we will be looking at today:</span></p> <ul> <li style="font-weight: 400;" aria-level="1"><a href="https://github.com/objectbox/objectbox-c/tree/main/examples/cpp-gen-sync"><span style="font-weight: 400;">C/C++ database example</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://github.com/objectbox/objectbox-go/tree/main/examples/tasks"><span style="font-weight: 400;">Go database example</span></a></li> <li style="font-weight: 400;" aria-level="1"><a href="https://github.com/objectbox/objectbox-examples/tree/main/android-app-sync"><span style="font-weight: 400;">Java (Android) database example</span></a></li> </ul> <h3><strong>Overview of the example code </strong></h3> <p><span style="font-weight: 400;">In this section, we’ll quickly review how the the task-list example app uses ObjectBox Sync. For a more detailed description, check out the <a href="https://sync.objectbox.io/">Sync docs</a>. If you want to see how each of these steps were incorporated into the example code, go to the next section.</span></p> <blockquote> <p><span style="font-weight: 400;">Note: The basic use of the database and its sync features is the same for all programming languages. If you haven’t used the ObjectBox DB yet, please refer to the corresponding documentation: <a href="https://cpp.objectbox.io/">C/C++ Docs</a>, <a href="https://docs.objectbox.io/">Java/Kotlin/Dart Docs</a>, <a href="https://golang.objectbox.io/">Go Docs</a>, <a href="https://swift.objectbox.io/">Swift Docs</a>.</span></p> </blockquote> <p><span style="font-weight: 400;">For sync to work in any app, we generally only need four things:</span></p> <ol> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">The sync-enabled library — this is not the same as the general ObjectBox library and has to be downloaded separately.</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Database objects enabled for sync — for this we need include the sync annotation in the ObjectBox schema file.</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;"><span>ObjectBox Sync Server — please apply for a <a href="https://objectbox.io/sync/">free Sync Trial here</a> to get your own copy of the Sync Server (available for Linux and Docker). Note that this will only have to be started once and in this tutorial we’ll show you how to run the server on Linux. If you are using Docker, follow the <a href="https://sync.objectbox.io/objectbox-sync-server#docker-distribution">steps outlined here.</a></span></span></li> <li><span style="font-weight: 400;">Start a Sync Client in the app <span>— a</span>s one can see from the <a href="https://sync.objectbox.io/sync-client#start-the-sync-client">Sync Client docs</a>, creating and starting a sync client is just a matter of a couple of lines of code.</span></li> </ol> <p><b>Important:</b><span style="font-weight: 400;"> When syncing between different apps, please make sure that the <a href="https://docs.objectbox.io/advanced/meta-model-ids-and-uids">UIDs</a> </span><span style="font-weight: 400;"> in the model JSON file (e.g. </span><span style="font-weight: 400;">objectbox-default.json</span><span style="font-weight: 400;">) are the same everywhere.</span></p> <ul></ul> <p><span style="font-weight: 400;"></span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_77 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2><strong>How to run the examples</strong></h2> <p>Here you’ll find requirements and step-by-step guides for running the task-list example app in each of the three languages.</p></div> </div><div class="et_pb_module et_pb_toggle et_pb_toggle_2 et_pb_toggle_item et_pb_toggle_close"> <h5 class="et_pb_toggle_title">C++ example app</h5> <div class="et_pb_toggle_content clearfix"><p><div class="embed-container" style="position: relative; padding-bottom: 56.2962962963%; height: 0; overflow: hidden; max-width: 100%;"><iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" title="Running the C++ example app with sync" width="1080" height="608" src="https://www.youtube.com/embed/PDSXPVHgC4Y?feature=oembed" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> </p> <h3><b>Requirements</b></h3> <p><b><span style="font-weight: 400;">New to C++? Check out our <a href="https://objectbox.io/cpp-beginner-tutorial/">beginner C++ ObjectBox installation tutorial</a>.</span></b></p> <ul> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">WSL Ubuntu</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">CMake</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Git</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">C++</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Clang</span></li> </ul> <ul></ul> <h3><b>Step-by-step guide</b><iostream> </iostream></h3> <p>1.Start by creating a CMakelists.txt file:</p> <p></p><!-- Urvanov Syntax Highlighter v2.8.34 --> <div id="urvanov-syntax-highlighter-67eeefac06c40261972617" class="urvanov-syntax-highlighter-syntax crayon-theme-objectbox-dark urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" no-popup minimize scroll-always" style=" font-size: 15px !important; line-height: 18px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="hide"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 15px !important; line-height: 18px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-1">1</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-3">3</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-5">5</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-7">7</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-9">9</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-10">10</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c40261972617-11">11</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 15px !important; line-height: 18px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-1"><span class="crayon-e">include</span><span class="crayon-sy">(</span><span class="crayon-v">FetchContent</span><span class="crayon-sy">)</span><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-2"><span class="crayon-e">FetchContent_Declare</span><span class="crayon-sy">(</span><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-3"><span class="crayon-e">objectbox </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-4"><span class="crayon-e">GIT_REPOSITORY </span><span class="crayon-v">https</span><span class="crayon-o">:</span><span class="crayon-c">//github.com/objectbox/objectbox-c.git </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-5"><span class="crayon-e">GIT_TAG </span><span class="crayon-v">v0</span><span class="crayon-sy">.</span><span class="crayon-cn">15.2</span><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-6"><span class="crayon-sy">)</span><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-7"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-8"><span class="crayon-e">FetchContent_MakeAvailable</span><span class="crayon-sy">(</span><span class="crayon-v">objectbox</span><span class="crayon-sy">)</span><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-9"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-10"><span class="crayon-e">add_executable</span><span class="crayon-sy">(</span><span class="crayon-e">myapp </span><span class="crayon-v">main</span><span class="crayon-sy">.</span><span class="crayon-v">cpp</span><span class="crayon-sy">)</span><span class="crayon-h"> </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c40261972617-11"><span class="crayon-e">target_link_libraries</span><span class="crayon-sy">(</span><span class="crayon-e">myapp </span><span class="crayon-v">objectbox</span><span class="crayon-o">-</span><span class="crayon-v">sync</span><span class="crayon-sy">)</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> <p></p> <p>Now configure and build the project via CMake: Configure (Clang), CMake: Build.</p> <p><strong>2. Sync-enabled objects: </strong>note the first line in <a href="https://github.com/objectbox/objectbox-c/blob/main/examples/cpp-gen-sync/tasklist.fbs">tasklist.fbs.</a></p> <p>3. <span style="font-weight: 400;">[if not running a server already] </span><span style="font-weight: 400;">Start the <strong>ObjectBox Sync Server</strong> on Linux by running <code>./sync-server --model build/_deps/objectbox-src/examples/cpp-gen/objectbox-model.json --unsecured-no-authentication </code></span></p> <p><span style="font-weight: 400;">where sync-server is the path to your sync server executable. You can find more information about the server in the <a href="https://sync.objectbox.io/objectbox-sync-server#admin-web-ui">Sync Server docs</a>.</span></p> <p>4. <strong>Sync Client: </strong>launch [objectbox-c-examples-cpp-gen-sync], and the Sync Client will start automatically. You can see how it was implemented in <a href="https://github.com/objectbox/objectbox-c/blob/main/examples/cpp-gen-sync/main.cpp"><span>main.cpp.</span></a></p> <p><span>As this is just an example, we opted for no authentication to make things simple. This is not what you would use in production. We currently offer two authentication methods: shared secret and Google Sign-In. Here is the relevant Sync <a href="https://sync.objectbox.io/sync-client#authentication-options">docs section on authentication options</a> that explains how to use these.</span></p> <p>5. Let’s add a first task, called “task-cpp” (new task-cpp-1), to check if our C++ app syncs correctly. The output should look like this:</p> <p><picture decoding="async" class="wp-image-223975 alignnone size-full" style="display: block; margin-left: auto; margin-right: auto;"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2022/03/cpp-1-1.jpg.webp"/> <img decoding="async" src="https://objectbox.io/wordpress/wp-content/uploads/2022/03/cpp-1-1.jpg" width="579" height="228" alt="Output of the C++ tasklist example app, showing a newly added task"/> </picture> </p> <p>6. <span style="font-weight: 400;">You can finally open the Admin UI to check if the task appears there. This is most easily done by opening </span><a href="http://127.0.0.1:9980/"><span style="font-weight: 400;">http://127.0.0.1:9980/</span></a><span style="font-weight: 400;"> in any web browser. For a more detailed description of what this can do, check out the </span><a href="https://sync.objectbox.io/objectbox-sync-server#admin-web-ui"><span style="font-weight: 400;">Admin UI docs</span></a><span style="font-weight: 400;">.</span></p></div> </div><div class="et_pb_module et_pb_toggle et_pb_toggle_3 et_pb_toggle_item et_pb_toggle_close"> <h5 class="et_pb_toggle_title">Go example app</h5> <div class="et_pb_toggle_content clearfix"><p><div class="embed-container" style="position: relative; padding-bottom: 56.2962962963%; height: 0; overflow: hidden; max-width: 100%;"><iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" title="Running the Go example app with sync" width="1080" height="608" src="https://www.youtube.com/embed/kLrqRl80qvs?feature=oembed" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div> </p> <h3><b>Requirements</b></h3> <ul> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">WSL Ubuntu</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Go (see how to configure it for VS Code <a href="https://docs.microsoft.com/en-us/azure/developer/go/configure-visual-studio-code">here</a>)</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Git</span></li> </ul> <h3><b>Step-by-step guide</b></h3> <p><span style="font-weight: 400;">1. First, clone the <a href="https://github.com/objectbox/objectbox-go.git">objectbox-go</a></span><span style="font-weight: 400;"><a href="https://github.com/objectbox/objectbox-go.git"> repository</a> to your VS Code project. Make sure the current directory is objectbox-go.</span></p> <p>2. <span style="font-weight: 400;"><strong>Sync-enabled objects. </strong>There are two versions of the task-list example: with and without sync. To run the one with sync, we need to enable our Task object for syncing. To do this, simply put the sync annotation on a new line in <strong>examples/tasks/internal/model/task.go</strong>:</span></p> <p></p><!-- Urvanov Syntax Highlighter v2.8.34 --> <div id="urvanov-syntax-highlighter-67eeefac06c4b494095266" class="urvanov-syntax-highlighter-syntax crayon-theme-objectbox-dark urvanov-syntax-highlighter-font-monospace urvanov-syntax-highlighter-os-pc print-yes notranslate" data-settings=" no-popup minimize scroll-always" style=" font-size: 15px !important; line-height: 18px !important;"> <div class="urvanov-syntax-highlighter-plain-wrap"></div> <div class="urvanov-syntax-highlighter-main" style=""> <table class="crayon-table"> <tr class="urvanov-syntax-highlighter-row"> <td class="crayon-nums " data-settings="hide"> <div class="urvanov-syntax-highlighter-nums-content" style="font-size: 15px !important; line-height: 18px !important;"><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-1">1</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-2">2</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-3">3</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-4">4</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-5">5</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-6">6</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-7">7</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-8">8</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-9">9</div><div class="crayon-num" data-line="urvanov-syntax-highlighter-67eeefac06c4b494095266-10">10</div></div> </td> <td class="urvanov-syntax-highlighter-code"><div class="crayon-pre" style="font-size: 15px !important; line-height: 18px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-1"><span class="crayon-c">// Put this on a new line to enable sync: </span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-2"><span class="crayon-c">// `objectbox:"sync"`</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-3"><span class="crayon-e">type</span><span class="crayon-h"> </span><span class="crayon-e">Task</span><span class="crayon-h"> </span><span class="crayon-t">struct</span><span class="crayon-h"> </span><span class="crayon-sy">{</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-4"><span class="crayon-h"> </span><span class="crayon-e">Id </span><span class="crayon-e">uint64</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-5"><span class="crayon-e"> </span><span class="crayon-e">Text </span><span class="crayon-t">string</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-6"><span class="crayon-h"> </span><span class="crayon-e">DateCreated </span><span class="crayon-v">time</span><span class="crayon-sy">.</span><span class="crayon-i">Time</span><span class="crayon-h"> </span><span class="crayon-sy">`</span><span class="crayon-v">objectbox</span><span class="crayon-o">:</span><span class="crayon-s">"date"</span><span class="crayon-sy">`</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-7"> </div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-8"><span class="crayon-h"> </span><span class="crayon-c">// DateFinished is initially set to unix epoch (value 0 in ObjectBox DB) to tag the task as "unfinished"</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-9"><span class="crayon-h"> </span><span class="crayon-e">DateFinished </span><span class="crayon-v">time</span><span class="crayon-sy">.</span><span class="crayon-i">Time</span><span class="crayon-h"> </span><span class="crayon-sy">`</span><span class="crayon-v">objectbox</span><span class="crayon-o">:</span><span class="crayon-s">"date"</span><span class="crayon-sy">`</span></div><div class="crayon-line" id="urvanov-syntax-highlighter-67eeefac06c4b494095266-10"><span class="crayon-sy">}</span></div></div></td> </tr> </table> </div> </div> <!-- [Format Time: 0.0001 seconds] --> <p></p> <p><span style="font-weight: 400;">Then run the generator: <code>go generate examples/tasks/internal/model/task.go</code> to update the schema.</span></p> <p>3. <span style="font-weight: 400;">[if not running a server already] Now start the <strong>ObjectBox Sync Server</strong>: <code>./sync-server --model=examples/tasks/internal/model/objectbox-model.json --unsecured-no-authentication</code>, </span></p> <p><span style="font-weight: 400;">where sync-server is the path to your sync server file. You can find more information about the server in the <a href="https://sync.objectbox.io/objectbox-sync-server#admin-web-ui">Sync Server docs</a>.</span></p> <p><span style="font-weight: 400;">4. Run <code>go run examples/tasks/main.go.</code> The Sync Client will start within the app; check </span><a href="https://github.com/objectbox/objectbox-go/blob/main/examples/tasks/main.go"><span>main.go</span></a> to see how this was implemented.</p> <p><span>As this is just an example, we opted for no authentication to make things simple. This is not what you would use in production. We currently offer two authentication methods: shared secret and Google Sign-In. Here is the relevant Sync <a href="https://sync.objectbox.io/sync-client#authentication-options">docs section on authentication options</a> </span><span>that explains how to use these.</span></p> <p><span style="font-weight: 400;">5. Now we can add our first task (<code>new task-go</code>) – if it synced correctly, you should already see that from the output of the app. In particular, there will be a message from the change listener (“received 1 changes”):</span></p> <p><span style="font-weight: 400;"> <picture decoding="async" class="wp-image-223976 alignnone size-full" style="display: block; margin-left: auto; margin-right: auto;"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2022/03/go-1-1.jpg.webp"/> <img decoding="async" src="https://objectbox.io/wordpress/wp-content/uploads/2022/03/go-1-1.jpg" width="497" height="220" alt="Output of the Go task-list example app after adding a first task"/> </picture> </span></p> <p><span style="font-weight: 400;">6. Lastly, open the Admin UI to check if the task appears there. This is most easily done by opening <a href="http://127.0.0.1:9980/">http://127.0.0.1:9980/</a> in any web browser. For a more detailed description of what this can do, check out the <a href="https://sync.objectbox.io/objectbox-sync-server#admin-web-ui">Admin UI docs</a>.</span></p> <p><span style="font-weight: 400;"><picture decoding="async" class="wp-image-223977 alignnone size-full" style="display: block; margin-left: auto; margin-right: auto;"> <source type="image/webp" srcset="https://objectbox.io/wordpress/wp-content/uploads/2022/03/admin-go.jpg.webp"/> <img decoding="async" src="https://objectbox.io/wordpress/wp-content/uploads/2022/03/admin-go.jpg" width="938" height="310" alt="Admin UI showing a task created with the Go example app"/> </picture> </span></p></div> </div><div class="et_pb_module et_pb_toggle et_pb_toggle_4 et_pb_toggle_item et_pb_toggle_close"> <h5 class="et_pb_toggle_title">Java (Android) example app</h5> <div class="et_pb_toggle_content clearfix"><h3><b>Requirements</b></h3> <ul> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Java</span></li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Android Studio</span></li> </ul> <h3><b>Step-by-step guide</b></h3> <ol> <ol> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">First of all, open Android Studio and clone the objectbox-examples repository via File → New → Project from Version Control. Use this URL:</span><a href="https://github.com/objectbox/objectbox-examples.git"> </a><span style="font-weight: 400;"><a href="https://github.com/objectbox/objectbox-examples.git">https://github.com/objectbox/objectbox-examples.git</a><a href="https://github.com/objectbox/objectbox-examples.git"></a></span></li> <li style="font-weight: 400;" aria-level="1"><strong>Sync-enabled objects: </strong>check out <a href="https://github.com/objectbox/objectbox-examples/blob/main/android-app-sync/src/main/java/io/objectbox/example/sync/Task.java">Task.java</a> to see how this was done (note the @Sync annotation).</li> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">[if not running a server already] Start the <strong>ObjectBox Sync Server</strong>: </span></li> </ol> </ol> <p><code>./sync-server --model android-app-sync/objectbox-models/default.json --unsecured-no-authentication</code>,</p> <p><span style="font-weight: 400;">where sync-server is the path to your sync server file. You can find more information about the server in the <a href="https://sync.objectbox.io/objectbox-sync-server#admin-web-ui">Sync Server docs</a>.</span></p> <ol> <li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Now you can run “android-app-sync” on a device of your choice. The <strong>Sync Client</strong> will start in the app. </span><span style="font-weight: 400;"></span></li> </ol> <p><span style="font-weight: 400;"><span>As this is just an example, we opted for no authentication to make things simple. This is not what you would use in production. We currently offer two authentication methods: shared secret and Google Sign-In (only for Java, Kotlin, Dart, C & Go). Here is the relevant Sync <a href="https://sync.objectbox.io/sync-client#authentication-options">docs section on authentication options</a> </span><span>that explains how to use these.</span></span></p> <p><span style="font-weight: 400;">5. Add a new task called “task-java”.</span></p> <p><span style="font-weight: 400;">6. Finally, open the Admin UI to check if the task appears there. This is most easily done by opening <a href="http://127.0.0.1:9980/">http://127.0.0.1:9980/</a> in any web browser. For a more detailed description of what this can do, check out the <a href="https://sync.objectbox.io/objectbox-sync-server#admin-web-ui">Admin UI docs</a>.</span></p></div> </div><div class="et_pb_module et_pb_text et_pb_text_78 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><h2><b>Next Steps</b></h2> <p><span style="font-weight: 400;">How easy was that? <img loading="lazy" decoding="async" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/frontend-builder/assets/vendors/plugins/emoticons/img/smiley-cool.gif" alt="cool" /> Now that you’ve run your first ObjectBox Sync example, why not build something yourself? Use any combination of the supported languages to build your own cross platform app.</span></p> <p><span style="font-weight: 400;">We’re eager to see your use case examples! Don’t hesitate to share your results with us by posting on Social Media and tagging @objectbox_io, or simply sending us an email on contact[at]objectbox.io. </span></p></div> </div><ul class="et_pb_module et_pb_social_media_follow et_pb_social_media_follow_0 clearfix et_pb_text_align_center et_pb_bg_layout_light"> <li class='et_pb_social_media_follow_network_0 et_pb_social_icon et_pb_social_network_link et-social-facebook'><a href='https://twitter.com/objectbox_io' class='icon et_pb_with_border' title='Follow on Facebook' target="_blank"><span class='et_pb_social_media_follow_network_name' aria-hidden='true' >Follow</span></a></li><li class='et_pb_social_media_follow_network_1 et_pb_social_icon et_pb_social_network_link et-social-twitter'><a href='https://twitter.com/objectbox_io' class='icon et_pb_with_border' title='Follow on Twitter' target="_blank"><span class='et_pb_social_media_follow_network_name' aria-hidden='true' >Follow</span></a></li><li class='et_pb_social_media_follow_network_2 et_pb_social_icon et_pb_social_network_link et-social-linkedin'><a href='https://www.linkedin.com/company/objectbox' class='icon et_pb_with_border' title='Follow on LinkedIn' target="_blank"><span class='et_pb_social_media_follow_network_name' aria-hidden='true' >Follow</span></a></li><li class='et_pb_social_media_follow_network_3 et_pb_social_icon et_pb_social_network_link et-social-instagram'><a href='https://www.instagram.com/objectbox_io' class='icon et_pb_with_border' title='Follow on Instagram' target="_blank"><span class='et_pb_social_media_follow_network_name' aria-hidden='true' >Follow</span></a></li> </ul><div class="et_pb_module et_pb_text et_pb_text_79 et_pb_text_align_left et_pb_bg_layout_light"> <div class="et_pb_text_inner"><p> </p> <p><span style="font-weight: 400;">If you want to learn more about how ObjectBox can be used in IoT, here is an </span><a href="https://objectbox.io/iot-edge-computing-database-decentralized-data-flows/iot-use-cases-edge-computing/"><span style="font-weight: 400;">overview of different use cases</span></a><span style="font-weight: 400;">. </span></p></div> </div> </div> </div> </div></p> </article> <div class="pagination clearfix"> <div class="alignleft"><a href="https://objectbox.io/category/iot/page/2/" >« Older Entries</a></div> <div class="alignright"></div> </div> </div> </div> </div> </div> <script nitro-exclude> var heartbeatData = new FormData(); heartbeatData.append('nitroHeartbeat', '1'); fetch(location.href, {method: 'POST', body: heartbeatData, credentials: 'omit'}); </script> <script nitro-exclude> document.cookie = 'nitroCachedPage=' + (!window.NITROPACK_STATE ? '0' : '1') + '; path=/; SameSite=Lax'; </script> <span class="et_pb_scroll_top et-pb-icon"></span> <footer id="main-footer"> <div id="footer-bottom"> <div class="container clearfix"> <div id="footer-info">Ⓒ Copyright 2025 ObjectBox Limited. All rights reserved. | <a href="https://objectbox.io/wordpress/wp-content/uploads/2024/10/2024_10_23_Object-Box-Privacy-Notice.docx.pdf" target="_blank" rel="nofollow">Privacy notice</a> | <a href="https://objectbox.io/wordpress/wp-content/uploads/2024/10/ObjectBox-Terms-Of-UseAC2024.pdf" target="_blank" rel="nofollow">Terms of use & Imprint</a></div> </div> </div> </footer> </div> </div> </div> <script type='text/javascript'>( $ => { /** * Displays toast message from storage, it is used when the user is redirected after login */ if ( window.sessionStorage ) { $( window ).on( 'tcb_after_dom_ready', () => { const message = sessionStorage.getItem( 'tcb_toast_message' ); if ( message ) { tcbToast( sessionStorage.getItem( 'tcb_toast_message' ), false ); sessionStorage.removeItem( 'tcb_toast_message' ); } } ); } /** * Displays toast message * * @param {string} message - message to display * @param {Boolean} error - whether the message is an error or not * @param {Function} callback - callback function to be called after the message is closed */ function tcbToast( message, error, callback ) { /* Also allow "message" objects */ if ( typeof message !== 'string' ) { message = message.message || message.error || message.success; } if ( ! error ) { error = false; } TCB_Front.notificationElement.toggle( message, error ? 'error' : 'success', callback ); } } )( typeof ThriveGlobal === 'undefined' ? jQuery : ThriveGlobal.$j ); </script><style type="text/css" id="tve_notification_styles"></style> <div class="tvd-toast tve-fe-message" style="display: none"> <div class="tve-toast-message tve-success-message"> <div class="tve-toast-icon-container"> <span class="tve_tick thrv-svg-icon"></span> </div> <div class="tve-toast-message-container"></div> </div> </div> <script type='text/javascript'> (function () { var c = document.body.className; c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); document.body.className = c; })(); </script> <!-- Start of HubSpot Embed Code --> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/3772993.js"></script> <!-- End of HubSpot Embed Code --> <script> jQuery(document).ready(function($) { // Create button var button = $('<button>', { text: 'View as Markdown', css: { 'position': 'fixed', 'bottom': '20px', 'right': '20px', 'z-index': '1000', 'background-color': '#4CAF50', 'color': 'white', 'border': 'none', 'border-radius': '4px', 'padding': '8px 16px', 'cursor': 'pointer', 'box-shadow': '0 2px 5px rgba(0,0,0,0.2)' }, click: function() { // Get current path without domain var path = window.location.pathname; var markdownUrl; // Handle homepage if (path === '/' || path === '') { markdownUrl = '/markdown/index.html.md'; } // Handle other pages else { // Remove trailing slash if present if (path.endsWith('/')) { path = path.slice(0, -1); } // Extract the slug from the path var slug = path.split('/').pop(); // Handle special cases if (slug === 'mongodb') { markdownUrl = '/markdown/mongodb/index.html.md'; } else if (slug === 'sync') { markdownUrl = '/markdown/sync/index.html.md'; } else if (slug === 'alternative-to-mongodb-sync') { markdownUrl = '/markdown/alternative-to-mongodb-sync/index.html.md'; } // Default case - use the slug else { markdownUrl = '/markdown/' + slug + '/index.html.md'; } } // Open in a new tab window.open(window.location.origin + markdownUrl, '_blank'); } }); // Add button to page $('body').append(button); }); </script> <link rel='stylesheet' id='wc-blocks-style-css' href='https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css?ver=wc-9.3.3' type='text/css' media='all' /> <link rel='stylesheet' id='mediaelement-css' href='https://objectbox.io/wordpress/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' type='text/css' media='all' /> <link rel='stylesheet' id='wp-mediaelement-css' href='https://objectbox.io/wordpress/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=6.5.5' type='text/css' media='all' /> <link rel='stylesheet' id='urvanov_syntax_highlighter-css' href='https://objectbox.io/wordpress/wp-content/plugins/urvanov-syntax-highlighter/css/min/urvanov_syntax_highlighter.min.css?ver=2.8.34' type='text/css' media='all' /> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/divi-modules-table-maker/extensions/scripts/public-module-script-min.js?ver=3.1.2" id="dvmd-tm-public-module-script-js"></script> <script type="text/javascript" id="leadin-script-loader-js-js-extra"> /* <![CDATA[ */ var leadin_wordpress = {"userRole":"visitor","pageType":"archive","leadinPluginVersion":"11.1.66"}; /* ]]> */ </script> <script type="text/javascript" src="https://js.hs-scripts.com/3772993.js?integration=WordPress&ver=11.1.66" id="leadin-script-loader-js-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/libs/magnific-popup/magnific-popup.js?ver=4.0.5" id="divi-torque-lite-magnific-popup-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/libs/slick/slick.min.js?ver=4.0.5" id="divi-torque-lite-slick-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/libs/counter-up/counter-up.min.js?ver=4.0.5" id="divi-torque-lite-counter-up-js"></script> <script type="text/javascript" id="divi-torque-lite-frontend-js-extra"> /* <![CDATA[ */ var diviTorqueLiteFrontend = {"ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/addons-for-divi/assets/js/frontend.js?ver=4.0.5" id="divi-torque-lite-frontend-js"></script> <script type="text/javascript" id="divi-custom-script-js-extra"> /* <![CDATA[ */ var DIVI = {"item_count":"%d Item","items_count":"%d Items"}; var et_builder_utils_params = {"condition":{"diviTheme":true,"extraTheme":false},"scrollLocations":["app","top"],"builderScrollLocations":{"desktop":"app","tablet":"app","phone":"app"},"onloadScrollLocation":"app","builderType":"fe"}; var et_frontend_scripts = {"builderCssContainerPrefix":"#et-boc","builderCssLayoutPrefix":"#et-boc .et-l"}; var et_pb_custom = {"ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","images_uri":"https:\/\/objectbox.io\/wordpress\/wp-content\/themes\/Divi\/images","builder_images_uri":"https:\/\/objectbox.io\/wordpress\/wp-content\/themes\/Divi\/includes\/builder\/images","et_frontend_nonce":"5d1cf96fce","subscription_failed":"Please, check the fields below to make sure you entered the correct information.","et_ab_log_nonce":"d1df5c8bfd","fill_message":"Please, fill in the following fields:","contact_error_message":"Please, fix the following errors:","invalid":"Invalid email","captcha":"Captcha","prev":"Prev","previous":"Previous","next":"Next","wrong_captcha":"You entered the wrong number in captcha.","wrong_checkbox":"Checkbox","ignore_waypoints":"no","is_divi_theme_used":"1","widget_search_selector":".widget_search","ab_tests":[],"is_ab_testing_active":"","page_id":"261404","unique_test_id":"","ab_bounce_rate":"5","is_cache_plugin_active":"no","is_shortcode_tracking":"","tinymce_uri":"https:\/\/objectbox.io\/wordpress\/wp-content\/themes\/Divi\/includes\/builder\/frontend-builder\/assets\/vendors","accent_color":"#17a6a6","waypoints_options":[]}; var et_pb_box_shadow_elements = []; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/js/scripts.min.js?ver=4.22.0" id="divi-custom-script-js"></script> <script type="text/javascript" id="divi-custom-script-js-after"> /* <![CDATA[ */ (function($) { // Fix CLS issues with Divi modules $(window).on("load", function() { // Fix for Divi gallery causing layout shifts $(".et_pb_gallery").each(function() { var gallery = $(this); var firstImage = gallery.find(".et_pb_gallery_image:first"); if (firstImage.length) { gallery.css("min-height", firstImage.height() + "px"); } }); // Fix for Divi portfolio causing layout shifts $(".et_pb_portfolio").each(function() { var portfolio = $(this); var firstItem = portfolio.find(".et_pb_portfolio_item:first"); if (firstItem.length) { portfolio.css("min-height", firstItem.height() + "px"); } }); // Fix for Divi blog causing layout shifts $(".et_pb_blog_grid").each(function() { var blog = $(this); var firstItem = blog.find(".et_pb_post:first"); if (firstItem.length) { blog.css("min-height", firstItem.height() + "px"); } }); }); })(jQuery); /* ]]> */ </script> <script type="text/javascript" id="tve-dash-frontend-js-extra"> /* <![CDATA[ */ var tve_dash_front = {"ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","force_ajax_send":"1","is_crawler":"","recaptcha":[],"turnstile":[],"post_id":"261404"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/thrive-leads/thrive-dashboard/js/dist/frontend.min.js?ver=10.3" id="tve-dash-frontend-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/jquery.fitvids.js?ver=4.22.0" id="fitvids-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/comment-reply.min.js?ver=6.5.5" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/jquery.mobile.js?ver=4.22.0" id="jquery-mobile-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/magnific-popup.js?ver=4.22.0" id="magnific-popup-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/easypiechart.js?ver=4.22.0" id="easypiechart-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/salvattore.js?ver=4.22.0" id="salvattore-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/divi-modules-table-maker/extensions/divi-4/scripts/frontend-bundle.min.js?ver=3.1.2" id="divi-modules-table-maker-frontend-bundle-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=9.3.3" id="sourcebuster-js-js"></script> <script type="text/javascript" id="wc-order-attribution-js-extra"> /* <![CDATA[ */ var wc_order_attribution = {"params":{"lifetime":1.0000000000000000818030539140313095458623138256371021270751953125e-5,"session":30,"base64":false,"ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=9.3.3" id="wc-order-attribution-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/core/admin/js/common.js?ver=4.22.0" id="et-core-common-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/divi-module-code-snippet/features/DBCSCopyToClipboardFeature/script.js?ver=1.4.4" id="dbcs-copy-to-clipboard-js"></script> <script type="text/javascript" id="mediaelement-core-js-before"> /* <![CDATA[ */ var mejsL10n = {"language":"en","strings":{"mejs.download-file":"Download File","mejs.install-flash":"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https:\/\/get.adobe.com\/flashplayer\/","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left\/Right Arrow keys to advance one second, Up\/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.volume-help-text":"Use Up\/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions\/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver=4.2.17" id="mediaelement-core-js"></script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver=6.5.5" id="mediaelement-migrate-js"></script> <script type="text/javascript" id="mediaelement-js-extra"> /* <![CDATA[ */ var _wpmejsSettings = {"pluginPath":"\/wordpress\/wp-includes\/js\/mediaelement\/","classPrefix":"mejs-","stretching":"responsive","audioShortcodeLibrary":"mediaelement","videoShortcodeLibrary":"mediaelement"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver=6.5.5" id="wp-mediaelement-js"></script> <script type="text/javascript" id="urvanov_syntax_highlighter_js-js-extra"> /* <![CDATA[ */ var UrvanovSyntaxHighlighterSyntaxSettings = {"version":"2.8.34","is_admin":"0","ajaxurl":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","prefix":"urvanov-syntax-highlighter-","setting":"urvanov-syntax-highlighter-setting","selected":"urvanov-syntax-highlighter-setting-selected","changed":"urvanov-syntax-highlighter-setting-changed","special":"urvanov-syntax-highlighter-setting-special","orig_value":"data-orig-value","debug":""}; var UrvanovSyntaxHighlighterSyntaxStrings = {"copy":"Copied to the clipboard","minimize":"Click To Expand Code"}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/plugins/urvanov-syntax-highlighter/js/min/urvanov_syntax_highlighter.min.js?ver=2.8.34" id="urvanov_syntax_highlighter_js-js"></script> <script type="text/javascript" id="et-builder-modules-script-motion-js-extra"> /* <![CDATA[ */ var et_pb_motion_elements = {"desktop":[],"tablet":[],"phone":[]}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/motion-effects.js?ver=4.22.0" id="et-builder-modules-script-motion-js"></script> <script type="text/javascript" id="et-builder-modules-script-sticky-js-extra"> /* <![CDATA[ */ var et_pb_sticky_elements = {"et_pb_section_0_tb_header":{"id":"et_pb_section_0_tb_header","selector":".et_pb_section_0_tb_header","position":{"desktop":"top","tablet":"none","phone":"none"},"topOffset":"0px","bottomOffset":"0px","topLimit":"none","bottomLimit":"none","offsetSurrounding":"on","transition":"on","styles":{"module_alignment":{"desktop":"","tablet":"","phone":""},"positioning":"relative"},"stickyStyles":{"position_origin_r":"top_left","horizontal_offset":"","vertical_offset":""}}}; /* ]]> */ </script> <script type="text/javascript" src="https://objectbox.io/wordpress/wp-content/themes/Divi/includes/builder/feature/dynamic-assets/assets/js/sticky-elements.js?ver=4.22.0" id="et-builder-modules-script-sticky-js"></script> <script type="text/javascript">var tcb_current_post_lists=JSON.parse('[]'); var tcb_post_lists=tcb_post_lists?[...tcb_post_lists,...tcb_current_post_lists]:tcb_current_post_lists;</script><script type="text/javascript">/*<![CDATA[*/if ( !window.TL_Const ) {var TL_Const={"security":"2a35e9e8f3","ajax_url":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","forms":[],"action_conversion":"tve_leads_ajax_conversion","action_impression":"tve_leads_ajax_impression","ajax_load":0,"custom_post_data":[],"current_screen":{"screen_type":6,"screen_id":0},"ignored_fields":["email","_captcha_size","_captcha_theme","_captcha_type","_submit_option","_use_captcha","g-recaptcha-response","__tcb_lg_fc","__tcb_lg_msg","_state","_form_type","_error_message_option","_back_url","_submit_option","url","_asset_group","_asset_option","mailchimp_optin","tcb_token","tve_labels","tve_mapping","_api_custom_fields","_sendParams","_autofill"]};} else { window.TL_Front && TL_Front.extendConst && TL_Front.extendConst({"security":"2a35e9e8f3","ajax_url":"https:\/\/objectbox.io\/wordpress\/wp-admin\/admin-ajax.php","forms":[],"action_conversion":"tve_leads_ajax_conversion","action_impression":"tve_leads_ajax_impression","ajax_load":0,"custom_post_data":[],"current_screen":{"screen_type":6,"screen_id":0},"ignored_fields":["email","_captcha_size","_captcha_theme","_captcha_type","_submit_option","_use_captcha","g-recaptcha-response","__tcb_lg_fc","__tcb_lg_msg","_state","_form_type","_error_message_option","_back_url","_submit_option","url","_asset_group","_asset_option","mailchimp_optin","tcb_token","tve_labels","tve_mapping","_api_custom_fields","_sendParams","_autofill"]})} /*]]> */</script><style id="et-builder-module-design-261404-cached-inline-styles">.et_pb_section_0.et_pb_section,.et_pb_section_1.et_pb_section,.et_pb_section_6.et_pb_section{padding-top:0px}.et_pb_row_0:before,.et_pb_row_1:before,.et_pb_row_2:before,.et_pb_row_3:before,.et_pb_row_4:before,.et_pb_row_5:before,.et_pb_row_6:before,.et_pb_row_7:before,.et_pb_row_8:before,.et_pb_row_9:before,.et_pb_row_10:before,.et_pb_row_11:before,.et_pb_row_12:before,.et_pb_row_13:before,.et_pb_row_14:before,.et_pb_row_15:before,.et_pb_row_16:before,.et_pb_row_17:before,.et_pb_row_18:before,.et_pb_row_19:before,.et_pb_row_20:before,.et_pb_row_21:before,.et_pb_row_22:before,.et_pb_row_23:before,.et_pb_row_24:before,.et_pb_row_25:before,.et_pb_row_26:before,.et_pb_row_27:before,.et_pb_row_28:before,.et_pb_row_29:before,.et_pb_row_30:before,.et_pb_row_31:before,.et_pb_row_32:before,.et_pb_row_33:before,.et_pb_row_34:before,.et_pb_row_35:before,.et_pb_row_36:before,.et_pb_row_37:before,.et_pb_row_38:before,.et_pb_row_39:before,.et_pb_row_40:before,.et_pb_row_41:before,.et_pb_row_42:before,.et_pb_row_43:before,.et_pb_row_44:before,.et_pb_row_45:before,.et_pb_row_46:before,.et_pb_row_47:before,.et_pb_row_48:before,.et_pb_row_49:before,.et_pb_row_50:before,.et_pb_row_51:before,.et_pb_row_52:before,.et_pb_row_53:before,.et_pb_row_54:before,.et_pb_row_55:before,.et_pb_row_56:before,.et_pb_row_57:before,.et_pb_row_58:before,.et_pb_row_59:before,.et_pb_row_60:before{@media only screen and (min-width:981px){.et_pb_column_0{width:15%!important}.et_pb_column_1{width:15%!important}.et_pb_column_2{width:40%!important}.et_pb_column_3{width:15%!important}.et_pb_column_4{width:15%!important}}}.et_pb_text_0{margin-bottom:20px!important}.et_pb_text_1{margin-bottom:9px!important}.et_pb_text_2{padding-bottom:0px!important;margin-bottom:-4px!important}.et_pb_text_3{margin-top:-17px!important}.et_pb_image_0{margin-top:-7px!important;width:89%;text-align:left;margin-left:0}.et_pb_row_2.et_pb_row,.et_pb_row_3.et_pb_row,.et_pb_row_17.et_pb_row,.et_pb_row_53.et_pb_row,.et_pb_row_55.et_pb_row{padding-top:0px!important;padding-top:0px}.et_pb_image_1{width:75%;text-align:center}.et_pb_text_5{margin-bottom:35px!important}.et_pb_image_2{margin-bottom:10px!important;text-align:center}.et_pb_text_8{font-weight:700;font-size:12px}.et_pb_text_9{margin-bottom:40px!important}.et_pb_text_10 h3{font-size:24px}.et_pb_text_11 h4{font-weight:700;font-size:16px;line-height:1.4em}.et_pb_text_12{margin-top:-7px!important}.et_pb_text_13 h4,.et_pb_text_15 h4{font-size:16px;line-height:1.4em}.et_pb_text_13{margin-bottom:43px!important}.et_pb_text_14{margin-top:-5px!important}.et_pb_text_15{padding-bottom:0px!important;margin-bottom:12px!important}.et_pb_video_0,.et_pb_video_0 iframe{border-radius:5px 5px 5px 5px;overflow:hidden}.et_pb_video_0{border-width:5px}.et_pb_video_0 .et_pb_video_overlay .et_pb_video_play{color:#393939}.et_pb_video_0 .et_pb_video_overlay_hover:hover{background-color:rgba(255,255,255,0.52)}.et_pb_text_17{margin-top:20px!important;margin-bottom:13px!important}.et_pb_row_7.et_pb_row{margin-top:-2px!important;margin-right:auto!important;margin-left:auto!important}.et_pb_image_3,.et_pb_image_4,.et_pb_image_14,.et_pb_image_15,.et_pb_image_16,.et_pb_image_17,.et_pb_image_22,.et_pb_image_27,.et_pb_image_28,.et_pb_image_29{text-align:left;margin-left:0}.et_pb_row_8.et_pb_row{padding-bottom:1px!important;padding-bottom:1px}.et_pb_row_9.et_pb_row{margin-top:-3px!important;margin-right:auto!important;margin-left:auto!important}.et_pb_text_22{margin-bottom:12px!important}.et_pb_row_11.et_pb_row{margin-right:auto!important;margin-bottom:8px!important;margin-left:auto!important}.et_pb_text_25{margin-top:4px!important}.et_pb_blurb_0 .et_pb_blurb_content,.et_pb_blurb_1 .et_pb_blurb_content,.et_pb_blurb_2 .et_pb_blurb_content{max-width:800px}.et_pb_button_0_wrapper .et_pb_button_0,.et_pb_button_0_wrapper .et_pb_button_0:hover,.et_pb_button_1_wrapper .et_pb_button_1,.et_pb_button_1_wrapper .et_pb_button_1:hover,.et_pb_button_2_wrapper .et_pb_button_2,.et_pb_button_2_wrapper .et_pb_button_2:hover{padding-top:14px!important;padding-right:24px!important;padding-bottom:14px!important;padding-left:24px!important}body #page-container .et_pb_section .et_pb_button_0{color:#ffffff!important;border-width:2px!important;border-color:#17a6a6;border-radius:100px;font-size:18px;font-family:'Archivo',sans-serif!important;font-weight:500!important;text-transform:uppercase!important;background-color:#17a6a6}body #page-container .et_pb_section .et_pb_button_0:hover:after,body #page-container .et_pb_section .et_pb_button_2:hover:after{margin-left:.3em;left:auto;margin-left:.3em;opacity:1}body #page-container .et_pb_section .et_pb_button_0:after,body #page-container .et_pb_section .et_pb_button_2:after{line-height:inherit;font-size:inherit!important;margin-left:-1em;left:auto;font-family:ETmodules!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0:hover{background-image:initial;background-color:#17a6a6}.et_pb_button_0,.et_pb_button_1{transition:background-color 300ms ease 0ms}.et_pb_button_0,.et_pb_button_0:after,.et_pb_button_1,.et_pb_button_1:after,.et_pb_button_2,.et_pb_button_2:after{transition:all 300ms ease 0ms}.et_pb_row_15.et_pb_row{padding-top:32px!important;padding-top:32px}.et_pb_divider_0:before{border-top-color:#393939}.et_pb_text_28{line-height:0.8em;font-size:10px;line-height:0.8em}.et_pb_image_5,.et_pb_image_23,.et_pb_image_24,.et_pb_image_25,.et_pb_image_26{text-align:center}.et_pb_testimonial_0.et_pb_testimonial .et_pb_testimonial_content,.et_pb_testimonial_1.et_pb_testimonial .et_pb_testimonial_content,.et_pb_testimonial_2.et_pb_testimonial .et_pb_testimonial_content,.et_pb_testimonial_3.et_pb_testimonial .et_pb_testimonial_content,.et_pb_testimonial_4.et_pb_testimonial .et_pb_testimonial_content{font-weight:700;font-size:18px}.et_pb_testimonial_0.et_pb_testimonial .et_pb_testimonial_position,.et_pb_testimonial_0.et_pb_testimonial .et_pb_testimonial_separator,.et_pb_testimonial_1.et_pb_testimonial .et_pb_testimonial_position,.et_pb_testimonial_1.et_pb_testimonial .et_pb_testimonial_separator,.et_pb_testimonial_2.et_pb_testimonial .et_pb_testimonial_position,.et_pb_testimonial_2.et_pb_testimonial .et_pb_testimonial_separator,.et_pb_testimonial_3.et_pb_testimonial .et_pb_testimonial_position,.et_pb_testimonial_3.et_pb_testimonial .et_pb_testimonial_separator,.et_pb_testimonial_4.et_pb_testimonial .et_pb_testimonial_position,.et_pb_testimonial_4.et_pb_testimonial .et_pb_testimonial_separator{font-size:16px}.et_pb_testimonial_0.et_pb_testimonial,.et_pb_testimonial_1.et_pb_testimonial,.et_pb_testimonial_2.et_pb_testimonial,.et_pb_testimonial_3.et_pb_testimonial{background-image:linear-gradient(43deg,#2a3850 0%,#17a6a6 100%);background-color:#17A6A6;min-height:120px;padding-bottom:16px!important;background-color:#17A6A6}.et_pb_testimonial_0,.et_pb_testimonial_1,.et_pb_testimonial_2,.et_pb_testimonial_3,.et_pb_testimonial_4{width:100%}.et_pb_testimonial_0.et_pb_testimonial:before,.et_pb_testimonial_1.et_pb_testimonial:before,.et_pb_testimonial_2.et_pb_testimonial:before,.et_pb_testimonial_3.et_pb_testimonial:before,.et_pb_testimonial_4.et_pb_testimonial:before{color:#ffffff;background-color:#f5962d}.et_pb_image_6{max-width:110px;text-align:left;margin-left:0}.et_pb_row_21.et_pb_row,.et_pb_row_23.et_pb_row,.et_pb_row_25.et_pb_row,.et_pb_row_27.et_pb_row{padding-left:2px!important;padding-left:2px}.et_pb_image_7,.et_pb_image_18,.et_pb_image_20{max-width:150px;text-align:left;margin-left:0}.et_pb_image_8{max-width:180px;text-align:left;margin-left:0}.et_pb_image_9{padding-bottom:0px;margin-top:-33px!important;margin-bottom:13px!important;max-width:180px;text-align:center}.et_pb_testimonial_4.et_pb_testimonial{background-image:linear-gradient(43deg,#2a3850 0%,#17a6a6 100%);background-color:#17A6A6;min-height:120px;background-color:#17A6A6}.et_pb_image_10,.et_pb_image_12{max-width:140px;text-align:left;margin-left:0}.et_pb_image_11{max-width:100px;text-align:left;margin-left:0}.et_pb_text_38{padding-top:2px!important}.et_pb_image_13{max-width:130px;text-align:left;margin-left:0}.et_pb_text_42{border-width:1px;border-color:#7DDC7D;padding-top:10px!important;padding-right:10px!important;padding-bottom:10px!important;padding-left:10px!important}.et_pb_text_43{border-width:1px;border-color:#17A6A6;padding-top:10px!important;padding-right:10px!important;padding-bottom:10px!important;padding-left:10px!important}.et_pb_text_50{padding-top:38px!important}.et_pb_image_19{max-width:200px;text-align:left;margin-left:0}.et_pb_text_51{padding-top:27px!important}.et_pb_text_52{padding-top:36px!important}.et_pb_text_53{background-color:#efefef;padding-top:20px!important;padding-right:0px!important;padding-bottom:20px!important;padding-left:20px!important}body #page-container .et_pb_section .et_pb_button_1{color:#ffffff!important;border-width:0px!important;border-color:#17A6A6;border-radius:100px;font-size:16px;background-image:linear-gradient(45deg,#17a6a6 37%,#7ddc7d 100%);background-color:#f5962d}body #page-container .et_pb_section .et_pb_button_1:after{font-size:1.6em}body.et_button_custom_icon #page-container .et_pb_button_1:after{font-size:16px}body #page-container .et_pb_section .et_pb_button_1:hover{background-image:linear-gradient(45deg,#17a6a6 37%,#ffee00 100%);background-color:#f5962d}.et_pb_section_2.et_pb_section{background-color:#08aaaa!important}.et_pb_fullwidth_header.et_pb_fullwidth_header_0{background-color:rgba(255,255,255,0)}.et_pb_fullwidth_header_0{margin-bottom:16px}.et_pb_section_3.et_pb_section{padding-top:4px;padding-right:0px;padding-bottom:30px;padding-left:0px}.et_pb_row_42.et_pb_row{padding-top:5px!important;padding-bottom:10px!important;padding-top:5px;padding-bottom:10px}.et_pb_text_55{min-height:235.7px}.et_pb_image_21{max-width:75%;text-align:center}.et_pb_row_43.et_pb_row{margin-bottom:0px!important}.et_pb_text_56,.et_pb_text_76{padding-top:0px!important}.et_pb_fullwidth_code_0{min-height:2282px;margin-bottom:-20%}.et_pb_section_5.et_pb_section{padding-top:5px;padding-bottom:3px}body #page-container .et_pb_section .et_pb_button_2{color:#ffffff!important;border-width:2px!important;border-radius:3px;letter-spacing:0px;font-size:23px;font-weight:300!important;background-color:#e61955}body #page-container .et_pb_section .et_pb_button_2:hover{color:#ffffff!important;background-image:initial;background-color:#e61955}.et_pb_button_2{transition:color 300ms ease 0ms,background-color 300ms ease 0ms}.et_pb_section_7.et_pb_section{padding-top:0px;padding-bottom:4px}.et_pb_row_46.et_pb_row{padding-top:1px!important;padding-top:1px}.et_pb_text_61{border-radius:1px 1px 1px 1px;overflow:hidden;border-width:2px;border-color:#17A6A6;padding-top:2%!important;padding-right:2%!important;padding-bottom:2%!important;padding-left:2%!important;margin-bottom:1%!important}.et_pb_column_66,.et_pb_column_68,.et_pb_column_70,.et_pb_column_72{width:10%!important}.et_pb_image_23 .et_pb_image_wrap img,.et_pb_image_24 .et_pb_image_wrap img,.et_pb_image_25 .et_pb_image_wrap img,.et_pb_image_26 .et_pb_image_wrap img{max-height:130px;width:auto}.et_pb_column_67,.et_pb_column_69,.et_pb_column_71,.et_pb_column_73{width:80%!important}.et_pb_row_54.et_pb_row{padding-bottom:2px!important;margin-top:-17px!important;margin-right:auto!important;margin-left:auto!important;padding-bottom:2px}.et_pb_text_71{margin-top:2%!important}.et_pb_row_57.et_pb_row{padding-bottom:0px!important;padding-bottom:0px}.et_pb_row_58.et_pb_row{padding-top:3px!important;padding-bottom:31px!important;padding-top:3px;padding-bottom:31px}.et_pb_text_74{margin-top:27px!important;margin-bottom:1px!important}.et_pb_row_59.et_pb_row{padding-bottom:37px!important;margin-top:-15px!important;margin-right:auto!important;margin-left:auto!important;padding-bottom:37px}.et_pb_text_75{padding-bottom:0px!important}.et_pb_section_8.et_pb_section{padding-top:51px}.et_pb_row_60.et_pb_row{padding-top:27px!important;margin-top:-60px!important;margin-right:auto!important;margin-bottom:-54px!important;margin-left:auto!important;padding-top:27px}.et_pb_video_1 .et_pb_video_overlay_hover:hover{background-color:rgba(0,0,0,.6)}.et_pb_toggle_4.et_pb_toggle{margin-bottom:38px!important}.et_pb_text_79{padding-bottom:0px!important;margin-top:-27px!important}.ba_logo_grid_child_0 .dtq-logo-grid__item,.ba_logo_grid_child_1 .dtq-logo-grid__item,.ba_logo_grid_child_2 .dtq-logo-grid__item,.ba_logo_grid_child_3 .dtq-logo-grid__item,.ba_logo_grid_child_4 .dtq-logo-grid__item,.ba_logo_grid_child_5 .dtq-logo-grid__item,.ba_logo_grid_child_6 .dtq-logo-grid__item,.ba_logo_grid_child_7 .dtq-logo-grid__item,.ba_logo_grid_child_8 .dtq-logo-grid__item{background-color:#e2e5ed!important;padding-top:50px!important;padding-right:50px!important;padding-bottom:50px!important;padding-left:50px!important}.et_pb_social_media_follow_network_0 a.icon{background-color:#3b5998!important}.et_pb_social_media_follow_network_1 a.icon{background-color:#00aced!important}.et_pb_social_media_follow_network_2 a.icon{background-color:#007bb6!important}.et_pb_social_media_follow_network_3 a.icon{background-color:#ea2c59!important}.et_pb_image_0.et_pb_module,.et_pb_image_1.et_pb_module,.et_pb_image_2.et_pb_module,.et_pb_video_0.et_pb_module,.et_pb_testimonial_0.et_pb_module,.et_pb_image_6.et_pb_module,.et_pb_image_7.et_pb_module,.et_pb_testimonial_1.et_pb_module,.et_pb_testimonial_2.et_pb_module,.et_pb_image_8.et_pb_module,.et_pb_image_9.et_pb_module,.et_pb_testimonial_3.et_pb_module,.et_pb_testimonial_4.et_pb_module,.et_pb_image_10.et_pb_module,.et_pb_image_11.et_pb_module,.et_pb_image_12.et_pb_module,.et_pb_image_13.et_pb_module,.et_pb_image_18.et_pb_module,.et_pb_image_19.et_pb_module,.et_pb_image_20.et_pb_module{margin-left:auto!important;margin-right:auto!important}@media only screen and (min-width:981px){.et_pb_image_2{width:75%}.et_pb_video_0{width:70%}}@media only screen and (max-width:980px){.et_pb_image_0 .et_pb_image_wrap img,.et_pb_image_1 .et_pb_image_wrap img,.et_pb_image_2 .et_pb_image_wrap img,.et_pb_image_3 .et_pb_image_wrap img,.et_pb_image_4 .et_pb_image_wrap img,.et_pb_image_5 .et_pb_image_wrap img,.et_pb_image_6 .et_pb_image_wrap img,.et_pb_image_7 .et_pb_image_wrap img,.et_pb_image_8 .et_pb_image_wrap img,.et_pb_image_9 .et_pb_image_wrap img,.et_pb_image_10 .et_pb_image_wrap img,.et_pb_image_11 .et_pb_image_wrap img,.et_pb_image_12 .et_pb_image_wrap img,.et_pb_image_13 .et_pb_image_wrap img,.et_pb_image_14 .et_pb_image_wrap img,.et_pb_image_15 .et_pb_image_wrap img,.et_pb_image_16 .et_pb_image_wrap img,.et_pb_image_17 .et_pb_image_wrap img,.et_pb_image_18 .et_pb_image_wrap img,.et_pb_image_19 .et_pb_image_wrap img,.et_pb_image_20 .et_pb_image_wrap img,.et_pb_image_21 .et_pb_image_wrap img,.et_pb_image_22 .et_pb_image_wrap img,.et_pb_image_23 .et_pb_image_wrap img,.et_pb_image_24 .et_pb_image_wrap img,.et_pb_image_25 .et_pb_image_wrap img,.et_pb_image_26 .et_pb_image_wrap img,.et_pb_image_27 .et_pb_image_wrap img,.et_pb_image_28 .et_pb_image_wrap img,.et_pb_image_29 .et_pb_image_wrap img{width:auto}.et_pb_image_2{width:88%}.et_pb_text_13{margin-bottom:0px!important}body #page-container .et_pb_section .et_pb_button_0:after,body #page-container .et_pb_section .et_pb_button_2:after{line-height:inherit;font-size:inherit!important;margin-left:-1em;left:auto;display:inline-block;opacity:0;content:attr(data-icon);font-family:ETmodules!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0:before,body #page-container .et_pb_section .et_pb_button_2:before{display:none}body #page-container .et_pb_section .et_pb_button_0:hover:after,body #page-container .et_pb_section .et_pb_button_2:hover:after{margin-left:.3em;left:auto;margin-left:.3em;opacity:1}.et_pb_text_50,.et_pb_text_51,.et_pb_text_52{padding-top:0px!important}body #page-container .et_pb_section .et_pb_button_1:after{display:inline-block;opacity:0}body #page-container .et_pb_section .et_pb_button_1:hover:after{opacity:1}}@media only screen and (max-width:767px){.et_pb_image_0 .et_pb_image_wrap img,.et_pb_image_1 .et_pb_image_wrap img,.et_pb_image_2 .et_pb_image_wrap img,.et_pb_image_3 .et_pb_image_wrap img,.et_pb_image_4 .et_pb_image_wrap img,.et_pb_image_5 .et_pb_image_wrap img,.et_pb_image_6 .et_pb_image_wrap img,.et_pb_image_7 .et_pb_image_wrap img,.et_pb_image_8 .et_pb_image_wrap img,.et_pb_image_9 .et_pb_image_wrap img,.et_pb_image_10 .et_pb_image_wrap img,.et_pb_image_11 .et_pb_image_wrap img,.et_pb_image_12 .et_pb_image_wrap img,.et_pb_image_13 .et_pb_image_wrap img,.et_pb_image_14 .et_pb_image_wrap img,.et_pb_image_15 .et_pb_image_wrap img,.et_pb_image_16 .et_pb_image_wrap img,.et_pb_image_17 .et_pb_image_wrap img,.et_pb_image_18 .et_pb_image_wrap img,.et_pb_image_19 .et_pb_image_wrap img,.et_pb_image_20 .et_pb_image_wrap img,.et_pb_image_21 .et_pb_image_wrap img,.et_pb_image_22 .et_pb_image_wrap img,.et_pb_image_23 .et_pb_image_wrap img,.et_pb_image_24 .et_pb_image_wrap img,.et_pb_image_25 .et_pb_image_wrap img,.et_pb_image_26 .et_pb_image_wrap img,.et_pb_image_27 .et_pb_image_wrap img,.et_pb_image_28 .et_pb_image_wrap img,.et_pb_image_29 .et_pb_image_wrap img{width:auto}.et_pb_image_2{width:100%}.et_pb_text_13{margin-bottom:0px!important}.et_pb_video_0{width:95%}body #page-container .et_pb_section .et_pb_button_0:after,body #page-container .et_pb_section .et_pb_button_2:after{line-height:inherit;font-size:inherit!important;margin-left:-1em;left:auto;display:inline-block;opacity:0;content:attr(data-icon);font-family:ETmodules!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0:before,body #page-container .et_pb_section .et_pb_button_2:before{display:none}body #page-container .et_pb_section .et_pb_button_0:hover:after,body #page-container .et_pb_section .et_pb_button_2:hover:after{margin-left:.3em;left:auto;margin-left:.3em;opacity:1}.et_pb_text_50,.et_pb_text_51,.et_pb_text_52{padding-top:0px!important}body #page-container .et_pb_section .et_pb_button_1:after{display:inline-block;opacity:0}body #page-container .et_pb_section .et_pb_button_1:hover:after{opacity:1}}</style><style id="et-builder-module-design-256727-cached-inline-styles">.et_pb_section_0_tb_header{border-bottom-width:1px;margin-bottom:-11px;z-index:10;box-shadow:0px 2px 18px 0px rgba(0,0,0,0.1)}.et_pb_section_0_tb_header.et_pb_section{padding-top:0px;padding-bottom:0px;background-color:#1B1815!important}.et_pb_sticky.et_pb_section_0_tb_header{box-shadow:0px 2px 18px 0px rgba(0,0,0,0.1);box-shadow:0px 5px 80px rgba(0,0,0,0.1)!important}.et_pb_row_0_tb_header:before{@media only screen and (min-width:981px){.et_pb_column_0{width:15%!important}.et_pb_column_1{width:15%!important}.et_pb_column_2{width:40%!important}.et_pb_column_3{width:15%!important}.et_pb_column_4{width:15%!important}}}.et_pb_row_0_tb_header{display:flex;align-items:center;flex-wrap:wrap}.et_pb_code_0_tb_header,.et_pb_code_1_tb_header{padding-top:0px;padding-bottom:0px;margin-top:0px!important;margin-bottom:0px!important}.et_pb_menu_0_tb_header.et_pb_menu ul li a{font-weight:500;font-size:15px;color:#ffffff!important}.et_pb_menu_0_tb_header.et_pb_menu{background-color:rgba(0,0,0,0)}.et_pb_menu_0_tb_header .et_pb_menu__logo-wrap .et_pb_menu__logo img{border-top-color:#1B1815;width:auto}.et_pb_menu_0_tb_header{padding-top:10px;padding-right:0px;margin-right:840px!important;margin-bottom:0px!important}.et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li ul.sub-menu{border-width:2px;border-radius:5px;left:auto!important;padding:0;right:0;width:200px}.et_pb_menu_0_tb_header.et_pb_menu .et-menu-nav li ul.sub-menu a{padding:12px 20px}.et_pb_menu_0_tb_header.et_pb_menu .et_pb_menu__logo{margin-bottom:10px}.et_pb_menu_0_tb_header.et_pb_menu ul li.current-menu-item a{color:#ffffff!important}.et_pb_menu_0_tb_header.et_pb_menu .nav li ul{background-color:#393939!important;border-color:#ffffff}.et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu{border-color:#ffffff}.et_pb_menu_0_tb_header.et_pb_menu .nav li ul.sub-menu a,.et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu a{color:#F7F7F7!important}.et_pb_menu_0_tb_header.et_pb_menu .nav li ul.sub-menu li.current-menu-item a{color:#17A6A6!important}.et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu,.et_pb_menu_0_tb_header.et_pb_menu .et_mobile_menu ul{background-color:#383838!important}.et_pb_menu_0_tb_header .et_pb_menu_inner_container>.et_pb_menu__logo-wrap,.et_pb_menu_0_tb_header .et_pb_menu__logo-slot{width:auto;max-width:100%}.et_pb_menu_0_tb_header .et_pb_menu_inner_container>.et_pb_menu__logo-wrap .et_pb_menu__logo img,.et_pb_menu_0_tb_header .et_pb_menu__logo-slot .et_pb_menu__logo-wrap img{height:35px;max-height:none}.et_pb_menu_0_tb_header .mobile_nav .mobile_menu_bar:before{color:#ffffff}.et_pb_menu_0_tb_header .et_pb_menu__icon.et_pb_menu__search-button,.et_pb_menu_0_tb_header .et_pb_menu__icon.et_pb_menu__close-search-button,.et_pb_menu_0_tb_header .et_pb_menu__icon.et_pb_menu__cart-button{color:#17a6a6}.et_pb_button_0_tb_header_wrapper .et_pb_button_0_tb_header,.et_pb_button_0_tb_header_wrapper .et_pb_button_0_tb_header:hover{padding-top:9px!important;padding-right:10px!important;padding-bottom:9px!important;padding-left:29px!important}.et_pb_button_0_tb_header_wrapper{margin-top:4px!important;margin-right:7px!important;margin-bottom:0px!important}body #page-container .et_pb_section .et_pb_button_0_tb_header{color:#BCBCBC!important;border-width:0px!important;border-color:RGBA(255,255,255,0);border-radius:8px;letter-spacing:0px;font-size:14px;background-color:RGBA(255,255,255,0)}body #page-container .et_pb_section .et_pb_button_0_tb_header:hover{color:#ffffff!important;border-color:#17A6A6!important;border-width:1px!important;background-image:initial;background-color:RGBA(255,255,255,0)}body #page-container .et_pb_section .et_pb_button_0_tb_header:after{display:none}body #page-container .et_pb_section .et_pb_button_0_tb_header:before{content:attr(data-icon);font-family:FontAwesome!important;font-weight:400!important;color:#F7F7F7;line-height:inherit;font-size:inherit!important;opacity:1;margin-left:-1.3em;right:auto;display:inline-block;font-family:FontAwesome!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0_tb_header:hover:before{margin-left:.3em;right:auto;margin-left:-1.3em}.et_pb_button_0_tb_header,.et_pb_button_1_tb_header{transition:color 300ms ease 0ms,background-color 300ms ease 0ms,border 300ms ease 0ms}.et_pb_button_0_tb_header,.et_pb_button_0_tb_header:after,.et_pb_button_1_tb_header,.et_pb_button_1_tb_header:after{transition:all 300ms ease 0ms}.et_pb_button_1_tb_header_wrapper .et_pb_button_1_tb_header,.et_pb_button_1_tb_header_wrapper .et_pb_button_1_tb_header:hover{padding-top:7px!important;padding-right:21px!important;padding-bottom:7px!important;padding-left:21px!important}.et_pb_button_1_tb_header_wrapper{margin-top:5px!important;margin-bottom:0px!important}body #page-container .et_pb_section .et_pb_button_1_tb_header{color:#F7F7F7!important;border-width:1px!important;border-color:#17A6A6;border-radius:8px;letter-spacing:0px;font-size:15px;background-image:linear-gradient(195deg,#17a6a6 24%,#006e70 100%);background-color:RGBA(255,255,255,0)}body #page-container .et_pb_section .et_pb_button_1_tb_header:hover{color:#ffffff!important;border-color:#23ffec!important;background-image:linear-gradient(195deg,#1cdddd 0%,#129694 100%);background-color:#ffffff}body #page-container .et_pb_section .et_pb_button_1_tb_header:before,body #page-container .et_pb_section .et_pb_button_1_tb_header:after{display:none!important}.et_pb_row_0_tb_header.et_pb_row{padding-top:0px!important;padding-bottom:0px!important;margin-left:auto!important;margin-right:auto!important;padding-top:0px;padding-bottom:0px}.et_pb_menu_0_tb_header.et_pb_module{margin-left:auto!important;margin-right:auto!important}@media only screen and (min-width:981px){.et_pb_row_0_tb_header,body #page-container .et-db #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,body.et_pb_pagebuilder_layout.single #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,body.et_pb_pagebuilder_layout.single.et_full_width_page #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row{width:95%}.et_pb_column_1_tb_header{display:flex;justify-content:flex-end}}@media only screen and (max-width:980px){.et_pb_section_0_tb_header{border-bottom-width:1px}.et_pb_row_0_tb_header,body #page-container .et-db #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,body.et_pb_pagebuilder_layout.single #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,body.et_pb_pagebuilder_layout.single.et_full_width_page #page-container #et-boc .et-l .et_pb_row_0_tb_header.et_pb_row,.et_pb_button_0_tb_header,.et_pb_button_1_tb_header{width:100%}.et_pb_column_0_tb_header{order:2;margin-bottom:0}.et_pb_menu_0_tb_header .et_pb_menu__logo-wrap .et_pb_menu__logo img{border-top-color:#1B1815}.et_pb_menu_0_tb_header{padding-top:10px;padding-right:0px;padding-bottom:0px;width:80%}.et_pb_column_1_tb_header{order:1}.et_pb_button_0_tb_header_wrapper{margin-right:0px!important}body #page-container .et_pb_section .et_pb_button_0_tb_header,body #page-container .et_pb_section .et_pb_button_1_tb_header{border-radius:0px}body #page-container .et_pb_section .et_pb_button_0_tb_header:before{line-height:inherit;font-size:inherit!important;margin-left:-1.3em;right:auto;display:inline-block;opacity:1;content:attr(data-icon);font-family:FontAwesome!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0_tb_header:after{display:none}body #page-container .et_pb_section .et_pb_button_0_tb_header:hover:before{margin-left:.3em;right:auto;margin-left:-1.3em}}@media only screen and (min-width:768px) and (max-width:980px){.et_pb_button_0_tb_header,.et_pb_button_1_tb_header{display:none!important}}@media only screen and (max-width:767px){.et_pb_section_0_tb_header{border-bottom-width:1px}.et_pb_column_0_tb_header{order:2;margin-bottom:0}.et_pb_menu_0_tb_header .et_pb_menu__logo-wrap .et_pb_menu__logo img{border-top-color:#1B1815}.et_pb_menu_0_tb_header{width:90%}.et_pb_column_1_tb_header{order:1}body #page-container .et_pb_section .et_pb_button_0_tb_header:before{line-height:inherit;font-size:inherit!important;margin-left:-1.3em;right:auto;display:inline-block;opacity:1;content:attr(data-icon);font-family:FontAwesome!important;font-weight:400!important}body #page-container .et_pb_section .et_pb_button_0_tb_header:after{display:none}body #page-container .et_pb_section .et_pb_button_0_tb_header:hover:before{margin-left:.3em;right:auto;margin-left:-1.3em}.et_pb_button_0_tb_header,.et_pb_button_1_tb_header{width:100%;display:none!important}}</style> <script> (function() { // Disable animations that cause CLS document.addEventListener('DOMContentLoaded', function() { // Find elements with animations that might cause CLS const animatedElements = document.querySelectorAll('.et-waypoint, .et_pb_animation_top, .et_pb_animation_bottom, .et_pb_animation_left, .et_pb_animation_right'); // Remove animation classes animatedElements.forEach(function(element) { element.classList.remove('et-waypoint', 'et_pb_animation_top', 'et_pb_animation_bottom', 'et_pb_animation_left', 'et_pb_animation_right'); element.style.opacity = '1'; element.style.transform = 'none'; }); // Fix for Divi sliders const sliders = document.querySelectorAll('.et_pb_slider'); sliders.forEach(function(slider) { // Set fixed height based on the first slide const firstSlide = slider.querySelector('.et_pb_slide'); if (firstSlide) { const slideHeight = firstSlide.offsetHeight; slider.style.height = slideHeight + 'px'; } }); // Fix for images without dimensions const images = document.querySelectorAll('img:not([width]):not([height])'); images.forEach(function(img) { if (img.naturalWidth && img.naturalHeight) { img.setAttribute('width', img.naturalWidth); img.setAttribute('height', img.naturalHeight); img.style.aspectRatio = img.naturalWidth + '/' + img.naturalHeight; } }); }); })(); </script> <!-- Cookie Notice plugin v2.4.18 by Hu-manity.co https://hu-manity.co/ --> <div id="cookie-notice" role="dialog" class="cookie-notice-hidden cookie-revoke-hidden cn-position-top" aria-label="Cookie Notice" style="background-color: rgba(50,50,58,1);"><div class="cookie-notice-container" style="color: #fff"><span id="cn-notice-text" class="cn-text-container">We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.</span><span id="cn-notice-buttons" class="cn-buttons-container"><a href="#" id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie cn-button cn-button-custom button" aria-label="Ok">Ok</a></span><span id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" title="No"></span></div> </div> <!-- / Cookie Notice plugin --> <span class="et_pb_scroll_top et-pb-icon"></span> </body> </html>