diff --git a/404.html b/404.html
index 253be9e..d8757e6 100644
--- a/404.html
+++ b/404.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Page Not Found | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Page Not Found | Courier Android"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/404.html"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/404.html" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper"><main class="container margin-vert--xl"><div class="row"><div class="col col--6 col--offset-3"><h1 class="hero__title">Page Not Found</h1><p>We could not find what you were looking for.</p><p>Please contact the owner of the site that linked you to the original URL and let them know their link is broken.</p></div></div></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/runtime~main.272c29f2.js b/assets/js/runtime~main.4943ce2f.js
similarity index 52%
rename from assets/js/runtime~main.272c29f2.js
rename to assets/js/runtime~main.4943ce2f.js
index 7b8804f..a458a1f 100644
--- a/assets/js/runtime~main.272c29f2.js
+++ b/assets/js/runtime~main.4943ce2f.js
@@ -1 +1 @@
-(()=>{"use strict";var e,t,r,a,f,o={},d={};function n(e){var t=d[e];if(void 0!==t)return t.exports;var r=d[e]={exports:{}};return o[e].call(r.exports,r,r.exports,n),r.exports}n.m=o,e=[],n.O=(t,r,a,f)=>{if(!r){var o=1/0;for(b=0;b<e.length;b++){r=e[b][0],a=e[b][1],f=e[b][2];for(var d=!0,c=0;c<r.length;c++)(!1&f||o>=f)&&Object.keys(n.O).every((e=>n.O[e](r[c])))?r.splice(c--,1):(d=!1,f<o&&(o=f));if(d){e.splice(b--,1);var i=a();void 0!==i&&(t=i)}}return t}f=f||0;for(var b=e.length;b>0&&e[b-1][2]>f;b--)e[b]=e[b-1];e[b]=[r,a,f]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var f=Object.create(null);n.r(f);var o={};t=t||[null,r({}),r([]),r(r)];for(var d=2&a&&e;"object"==typeof d&&!~t.indexOf(d);d=r(d))Object.getOwnPropertyNames(d).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,n.d(f,o),f},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,r)=>(n.f[r](e,t),t)),[])),n.u=e=>"assets/js/"+({45:"a6857b16",53:"935f2afb",63:"8a6052eb",80:"a98fac15",101:"36ada3df",121:"f2346e40",185:"bf4d2693",190:"92bd0498",195:"c4f5d8e4",206:"b9b35de4",214:"2b59e5d5",309:"59424fb6",362:"f864a7a1",394:"e0a19902",396:"1e8741b6",399:"8ad68633",450:"239e8a52",510:"fb5adfad",514:"1be78505",553:"1ff659d4",611:"fb22182f",616:"65a61b25",638:"242cc4f8",689:"d3d4ddd5",695:"331638ff",849:"0f6e67ac",918:"17896441"}[e]||e)+"."+{45:"a7ce3a42",53:"4a68958d",63:"ec210a5d",80:"95c48d29",101:"4a96bad3",121:"69e5ec86",185:"1dc52b62",190:"65d1d4e6",195:"5b8c648d",206:"b50cc20d",214:"6b73a67d",309:"d1d0451d",362:"25757150",394:"93221463",396:"095c82d3",399:"af495175",450:"d396f02b",510:"acb5d7a4",514:"0cbdf7d5",553:"0c50dbe0",608:"c6b24508",611:"accd1fe2",616:"3d2097ac",638:"fabb4758",689:"efd6a30b",695:"aa5a0ce7",849:"201128c8",918:"764c1519"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},f="docs:",n.l=(e,t,r,o)=>{if(a[e])a[e].push(t);else{var d,c;if(void 0!==r)for(var i=document.getElementsByTagName("script"),b=0;b<i.length;b++){var u=i[b];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==f+r){d=u;break}}d||(c=!0,(d=document.createElement("script")).charset="utf-8",d.timeout=120,n.nc&&d.setAttribute("nonce",n.nc),d.setAttribute("data-webpack",f+r),d.src=e),a[e]=[t];var l=(t,r)=>{d.onerror=d.onload=null,clearTimeout(s);var f=a[e];if(delete a[e],d.parentNode&&d.parentNode.removeChild(d),f&&f.forEach((e=>e(r))),t)return t(r)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=l.bind(null,d.onerror),d.onload=l.bind(null,d.onload),c&&document.head.appendChild(d)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/courier-android/",n.gca=function(e){return e={17896441:"918",a6857b16:"45","935f2afb":"53","8a6052eb":"63",a98fac15:"80","36ada3df":"101",f2346e40:"121",bf4d2693:"185","92bd0498":"190",c4f5d8e4:"195",b9b35de4:"206","2b59e5d5":"214","59424fb6":"309",f864a7a1:"362",e0a19902:"394","1e8741b6":"396","8ad68633":"399","239e8a52":"450",fb5adfad:"510","1be78505":"514","1ff659d4":"553",fb22182f:"611","65a61b25":"616","242cc4f8":"638",d3d4ddd5:"689","331638ff":"695","0f6e67ac":"849"}[e]||e,n.p+n.u(e)},(()=>{var e={303:0,532:0};n.f.j=(t,r)=>{var a=n.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var f=new Promise(((r,f)=>a=e[t]=[r,f]));r.push(a[2]=f);var o=n.p+n.u(t),d=new Error;n.l(o,(r=>{if(n.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var f=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;d.message="Loading chunk "+t+" failed.\n("+f+": "+o+")",d.name="ChunkLoadError",d.type=f,d.request=o,a[1](d)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,r)=>{var a,f,o=r[0],d=r[1],c=r[2],i=0;if(o.some((t=>0!==e[t]))){for(a in d)n.o(d,a)&&(n.m[a]=d[a]);if(c)var b=c(n)}for(t&&t(r);i<o.length;i++)f=o[i],n.o(e,f)&&e[f]&&e[f][0](),e[f]=0;return n.O(b)},r=self.webpackChunkdocs=self.webpackChunkdocs||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})()})();
\ No newline at end of file
+(()=>{"use strict";var e,t,r,a,d,o={},f={};function n(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={exports:{}};return o[e].call(r.exports,r,r.exports,n),r.exports}n.m=o,e=[],n.O=(t,r,a,d)=>{if(!r){var o=1/0;for(i=0;i<e.length;i++){r=e[i][0],a=e[i][1],d=e[i][2];for(var f=!0,c=0;c<r.length;c++)(!1&d||o>=d)&&Object.keys(n.O).every((e=>n.O[e](r[c])))?r.splice(c--,1):(f=!1,d<o&&(o=d));if(f){e.splice(i--,1);var b=a();void 0!==b&&(t=b)}}return t}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[r,a,d]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var d=Object.create(null);n.r(d);var o={};t=t||[null,r({}),r([]),r(r)];for(var f=2&a&&e;"object"==typeof f&&!~t.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,n.d(d,o),d},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,r)=>(n.f[r](e,t),t)),[])),n.u=e=>"assets/js/"+({45:"a6857b16",53:"935f2afb",63:"8a6052eb",80:"a98fac15",101:"36ada3df",121:"f2346e40",185:"bf4d2693",190:"92bd0498",195:"c4f5d8e4",206:"b9b35de4",214:"2b59e5d5",309:"59424fb6",362:"f864a7a1",394:"e0a19902",396:"1e8741b6",399:"8ad68633",450:"239e8a52",510:"fb5adfad",514:"1be78505",553:"1ff659d4",611:"fb22182f",616:"65a61b25",638:"242cc4f8",689:"d3d4ddd5",695:"331638ff",849:"0f6e67ac",918:"17896441"}[e]||e)+"."+{45:"a7ce3a42",53:"4a68958d",63:"ec210a5d",80:"95c48d29",101:"4a96bad3",121:"69e5ec86",185:"1dc52b62",190:"65d1d4e6",195:"5b8c648d",206:"b50cc20d",214:"6b73a67d",309:"d1d0451d",362:"25757150",394:"93221463",396:"095c82d3",399:"af495175",450:"d396f02b",510:"acb5d7a4",514:"0cbdf7d5",553:"0c50dbe0",608:"c6b24508",611:"accd1fe2",616:"3d2097ac",638:"fabb4758",689:"efd6a30b",695:"aa5a0ce7",849:"201128c8",918:"764c1519"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},d="docs:",n.l=(e,t,r,o)=>{if(a[e])a[e].push(t);else{var f,c;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var u=b[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+r){f=u;break}}f||(c=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,n.nc&&f.setAttribute("nonce",n.nc),f.setAttribute("data-webpack",d+r),f.src=e),a[e]=[t];var l=(t,r)=>{f.onerror=f.onload=null,clearTimeout(s);var d=a[e];if(delete a[e],f.parentNode&&f.parentNode.removeChild(f),d&&d.forEach((e=>e(r))),t)return t(r)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=l.bind(null,f.onerror),f.onload=l.bind(null,f.onload),c&&document.head.appendChild(f)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/courier-android/",n.gca=function(e){return e={17896441:"918",a6857b16:"45","935f2afb":"53","8a6052eb":"63",a98fac15:"80","36ada3df":"101",f2346e40:"121",bf4d2693:"185","92bd0498":"190",c4f5d8e4:"195",b9b35de4:"206","2b59e5d5":"214","59424fb6":"309",f864a7a1:"362",e0a19902:"394","1e8741b6":"396","8ad68633":"399","239e8a52":"450",fb5adfad:"510","1be78505":"514","1ff659d4":"553",fb22182f:"611","65a61b25":"616","242cc4f8":"638",d3d4ddd5:"689","331638ff":"695","0f6e67ac":"849"}[e]||e,n.p+n.u(e)},(()=>{var e={303:0,532:0};n.f.j=(t,r)=>{var a=n.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var d=new Promise(((r,d)=>a=e[t]=[r,d]));r.push(a[2]=d);var o=n.p+n.u(t),f=new Error;n.l(o,(r=>{if(n.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var d=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;f.message="Loading chunk "+t+" failed.\n("+d+": "+o+")",f.name="ChunkLoadError",f.type=d,f.request=o,a[1](f)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,r)=>{var a,d,o=r[0],f=r[1],c=r[2],b=0;if(o.some((t=>0!==e[t]))){for(a in f)n.o(f,a)&&(n.m[a]=f[a]);if(c)var i=c(n)}for(t&&t(r);b<o.length;b++)d=o[b],n.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return n.O(i)},r=self.webpackChunkdocs=self.webpackChunkdocs||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})()})();
\ No newline at end of file
diff --git a/docs/AdaptiveKeepAlive/index.html b/docs/AdaptiveKeepAlive/index.html
index 67a2684..e3385e1 100644
--- a/docs/AdaptiveKeepAlive/index.html
+++ b/docs/AdaptiveKeepAlive/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Adaptive KeepAlive | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/AdaptiveKeepAlive"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Adaptive KeepAlive | Courier Android"><meta data-rh="true" name="description" content="Adaptive keepalive is a feature in the Courier library which tries to find the most optimal keepalive interval for a client on a particular network. This helps us in optimising the number of ping requests sent over the network and keeping the connection alive."><meta data-rh="true" property="og:description" content="Adaptive keepalive is a feature in the Courier library which tries to find the most optimal keepalive interval for a client on a particular network. This helps us in optimising the number of ping requests sent over the network and keeping the connection alive."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/AdaptiveKeepAlive"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/AdaptiveKeepAlive" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/AdaptiveKeepAlive" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/ConnectionSetup">Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/AdaptiveKeepAlive">Adaptive KeepAlive</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/PingSender">MQTT Ping Sender</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscriptionStore">Subscription Store</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttChuck">MQTT Chuck</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/QoS">Quality of Service</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Features</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Adaptive KeepAlive</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Adaptive KeepAlive</h1><p>Adaptive keepalive is a feature in the Courier library which tries to find the most optimal keepalive interval for a client on a particular network. This helps us in optimising the number of ping requests sent over the network and keeping the connection alive.</p><p>You can read about Adaptive KeepAlive in detail <a href="https://medium.com/gojekengineering/adaptive-heartbeats-for-our-information-superhighway-26459bf85d62" target="_blank" rel="noopener noreferrer">here</a>.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="usage">Usage<a class="hash-link" href="#usage" title="Direct link to heading">​</a></h2><p>To enable adaptive keepalive for your Courier connection, you just need to pass <code>AdaptiveKeepAliveConfig</code> inside <a href="/courier-android/docs/ExperimentConfigs">ExperimentConfigs</a>.</p><p>This will create a new connection having the same connect options as the original connection. Only the client id for this new connection is changed by appending the <code>:adaptive</code> suffix to the original client id.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="adaptivekeepaliveconfig">AdaptiveKeepAliveConfig<a class="hash-link" href="#adaptivekeepaliveconfig" title="Direct link to heading">​</a></h3><p>AdaptiveKeepAliveConfig has the following configs:</p><ul><li><p><strong>lowerBoundMinutes</strong> : Lower bound of the window in which optimal keepalive interval has to be searched.</p></li><li><p><strong>upperBoundMinutes</strong> : Upper bound of the window in which optimal keepalive interval has to be searched.</p></li><li><p><strong>stepMinutes</strong> : Step size with which keep alive interval is incremented while searching for the optimal keepalive interval. </p></li><li><p><strong>optimalKeepAliveResetLimit</strong> : Once optimal keepalive interval is found, it will be reset if it keeps failing beyond <strong>optimalKeepAliveResetLimit</strong>.</p></li><li><p><strong>pingSender</strong> : Implementation of ping sender used for sending ping requests over the new MQTT connection used for finding the optimal keepalive interval.</p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/AdaptiveKeepAlive.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/NonStandardOptions"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Non-standard Connection options</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/PingSender"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">MQTT Ping Sender</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#usage" class="table-of-contents__link toc-highlight">Usage</a><ul><li><a href="#adaptivekeepaliveconfig" class="table-of-contents__link toc-highlight">AdaptiveKeepAliveConfig</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/Authenticator/index.html b/docs/Authenticator/index.html
index 2642a77..4c12d1c 100644
--- a/docs/Authenticator/index.html
+++ b/docs/Authenticator/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Authenticator | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/Authenticator"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Authenticator | Courier Android"><meta data-rh="true" name="description" content="When an MQTT client tries to make a connection with an MQTT broker, username and password are sent inside CONNECT packet, which the broker uses to authenticate the client. If username or password is incorrect, broker returns reason code 5."><meta data-rh="true" property="og:description" content="When an MQTT client tries to make a connection with an MQTT broker, username and password are sent inside CONNECT packet, which the broker uses to authenticate the client. If username or password is incorrect, broker returns reason code 5."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/Authenticator"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/Authenticator" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/Authenticator" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Authenticator</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Authenticator</h1><p>When an MQTT client tries to make a connection with an MQTT broker, username and password are sent inside CONNECT packet, which the broker uses to authenticate the client. If username or password is incorrect, broker returns reason code <code>5</code>.</p><p>Courier library uses the Authenticator to refresh the connect options, which contains the username and password, in order to reconnect with the broker successfully.</p><p>You can pass your own implementation of <a href="https://github.com/gojek/courier-android/blob/main/mqtt-client/src/main/java/com/gojek/mqtt/auth/Authenticator.kt" target="_blank" rel="noopener noreferrer">Authenticator</a> interface or uses the library provided <a href="https://github.com/gojek/courier-android/blob/main/courier-auth-http/src/main/java/com/gojek/courier/authhttp/HttpAuthenticator.kt" target="_blank" rel="noopener noreferrer">HttpAuthenticator</a></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="http-authenticator">Http Authenticator<a class="hash-link" href="#http-authenticator" title="Direct link to heading">​</a></h2><p>Courier library provides an implementation of Authenticator, which allows you to fetch the latest connect options by making an HTTP call.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="usage">Usage<a class="hash-link" href="#usage" title="Direct link to heading">​</a></h3><p>Add this dependency for using Http Authenticator</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:courier-auth-http:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>An instance of HttpAuthenticator can be created using the factory class.</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">httpAuthenticator </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> HttpAuthenticatorFactory</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">create</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            retrofit </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> retrofit</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            apiUrl </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> TOKEN_AUTH_API</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            responseHandler </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> responseHandler</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            eventHandler </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> eventHandler</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            authRetryPolicy </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> authRetryPolicy</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/Authenticator.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/ExperimentConfigs"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Experiment Configs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/NonStandardOptions"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Non-standard Connection options</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#http-authenticator" class="table-of-contents__link toc-highlight">Http Authenticator</a><ul><li><a href="#usage" class="table-of-contents__link toc-highlight">Usage</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/CONTRIBUTION/index.html b/docs/CONTRIBUTION/index.html
index cd3a195..9818272 100644
--- a/docs/CONTRIBUTION/index.html
+++ b/docs/CONTRIBUTION/index.html
@@ -5,14 +5,14 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">How to Contribute | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/CONTRIBUTION"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="How to Contribute | Courier Android"><meta data-rh="true" name="description" content="Courier team would love to have your contributions."><meta data-rh="true" property="og:description" content="Courier team would love to have your contributions."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/CONTRIBUTION"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/CONTRIBUTION" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/CONTRIBUTION" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/ConnectionSetup">Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Contribution</span><meta itemprop="position" content="1"></li></ul></nav><div class="theme-doc-markdown markdown"><header><h1>How to Contribute</h1></header><p>Courier team would love to have your contributions.</p><p>We operate with a pull request system with GitHub. Read our <a href="https://github.com/gojek/courier-android/blob/main/CONTRIBUTION.md" target="_blank" rel="noopener noreferrer">contribution guide</a> to learn about our development process,
 how to propose bugfixes and improvements, and how to build and test your changes to Courier Android library.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/CONTRIBUTION.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/QoS"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Quality of Service</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/LICENSE"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">LICENSE</div></a></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/ConnectionSetup/index.html b/docs/ConnectionSetup/index.html
index adec560..43c0766 100644
--- a/docs/ConnectionSetup/index.html
+++ b/docs/ConnectionSetup/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Connection Setup | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/ConnectionSetup"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Connection Setup | Courier Android"><meta data-rh="true" name="description" content="MqttClient"><meta data-rh="true" property="og:description" content="MqttClient"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/ConnectionSetup"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/ConnectionSetup" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/ConnectionSetup" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Connection Setup</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Connection Setup</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="mqttclient">MqttClient<a class="hash-link" href="#mqttclient" title="Direct link to heading">​</a></h2><p>An instance of <a href="https://github.com/gojek/courier-android/blob/main/mqtt-client/src/main/java/com/gojek/mqtt/client/MqttClient.kt" target="_blank" rel="noopener noreferrer">MqttClient</a> needs to be created in order to establish a Courier connection.</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> mqttClient </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> MqttClientFactory</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">create</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    context </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> context</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    mqttConfiguration </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> mqttConfiguration</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="connect-using-mqttclient">Connect using MqttClient<a class="hash-link" href="#connect-using-mqttclient" title="Direct link to heading">​</a></h3><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> alpnProtocol </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;mqtt&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> connectOptions </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> MqttConnectOptions</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Builder</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">serverUris</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">listof</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">ServerUri</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">SERVER_URI</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> SERVER_PORT</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">clientId</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">clientId</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">userName</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">username</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">password</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">password</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">keepAlive</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">KeepAlive</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">timeSeconds </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> keepAliveSeconds</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">cleanSession</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">cleanSessionFlag</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">alpnProtocols</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">listOf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">Protocol</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">alpnProtocol</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">build</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">mqttClient</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">connect</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">connectOptions</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="disconnect-using-mqttclient">Disconnect using MqttClient<a class="hash-link" href="#disconnect-using-mqttclient" title="Direct link to heading">​</a></h3><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">mqttClient</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">disconnect</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="mqttconnectoptions">MqttConnectOptions<a class="hash-link" href="#mqttconnectoptions" title="Direct link to heading">​</a></h3><p><a href="https://github.com/gojek/courier-android/blob/main/mqtt-client/src/main/java/com/gojek/mqtt/model/MqttConnectOptions.kt" target="_blank" rel="noopener noreferrer">MqttConnectOptions</a> represents the properties of the underlying MQTT connection in Courier.</p><ul><li><p><strong>Server URIs</strong> : List of ServerUri representing the host and port of an MQTT broker.</p></li><li><p><strong>Client Id</strong> : Unique ID of the MQTT client.</p></li><li><p><strong>Username</strong> : Username of the MQTT client.</p></li><li><p><strong>Password</strong> : Password of the MQTT client.</p></li><li><p><strong>KeepAlive Interval</strong> : Interval at which keep alive packets are sent for the MQTT connection.</p></li><li><p><strong>Clean Session Flag</strong> : When clean session is false, a persistent connection is created. Otherwise, non-persistent connection is created and all persisted information is cleared from both client and broker.</p></li><li><p><strong>Read Timeout</strong> : Read timeout of the SSL/TCP socket created for the MQTT connection.</p></li><li><p><strong>MQTT protocol version</strong> : It can be either VERSION_3_1 or VERSION_3_1_1.</p></li><li><p><strong>User properties</strong> : Custom user properties appended to the CONNECT packet.</p></li><li><p><strong>Socket Factory</strong> : Sets the socket factory used to create connections. If unset, the <strong>SocketFactory.getDefault</strong> socket factory will be used. Set <a href="/courier-android/docs/ExperimentConfigs">shouldUseNewSSLFlow</a> to true to enable this.</p></li><li><p><strong>SSL Socket Factory</strong>: Sets the socket factory and trust manager used to secure MQTT connections. If unset, the system defaults will be used. Set <a href="/courier-android/docs/ExperimentConfigs">shouldUseNewSSLFlow</a> to true to enable this.</p></li><li><p><strong>Connection Spec</strong>: Specifies configuration for the socket connection that MQTT traffic travels through. This includes the TLS version and cipher suites to use when negotiating a secure connection. Set <a href="/courier-android/docs/ExperimentConfigs">shouldUseNewSSLFlow</a> to true to enable this.</p></li><li><p><strong>ALPN Protocols</strong>: Configure the alpn protocols used by this client to communicate with MQTT broker. Set <a href="/courier-android/docs/ExperimentConfigs">shouldUseNewSSLFlow</a> to true to enable this.</p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/ConnectionSetup.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/SampleApp"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Sample App</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/MqttConfiguration"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">MQTT Client Configuration</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#mqttclient" class="table-of-contents__link toc-highlight">MqttClient</a><ul><li><a href="#connect-using-mqttclient" class="table-of-contents__link toc-highlight">Connect using MqttClient</a></li><li><a href="#disconnect-using-mqttclient" class="table-of-contents__link toc-highlight">Disconnect using MqttClient</a></li><li><a href="#mqttconnectoptions" class="table-of-contents__link toc-highlight">MqttConnectOptions</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/CourierService/index.html b/docs/CourierService/index.html
index 3f06139..9d85849 100644
--- a/docs/CourierService/index.html
+++ b/docs/CourierService/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Courier Service Interface | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/CourierService"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Courier Service Interface | Courier Android"><meta data-rh="true" name="description" content="Courier provides the functionalities like Send, Receive, Subscribe, Unsubscribe through a service interface. This is similar to how we make HTTP calls using Retrofit."><meta data-rh="true" property="og:description" content="Courier provides the functionalities like Send, Receive, Subscribe, Unsubscribe through a service interface. This is similar to how we make HTTP calls using Retrofit."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/CourierService"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/CourierService" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/CourierService" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Courier Service Interface</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Courier Service Interface</h1><p>Courier provides the functionalities like Send, Receive, Subscribe, Unsubscribe through a service interface. This is similar to how we make HTTP calls using Retrofit.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="usage">Usage<a class="hash-link" href="#usage" title="Direct link to heading">​</a></h3><p>Declare a service interface for various actions like Send, Receive, Subscribe, Unsubscribe.</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">interface</span><span class="token plain"> MessageService </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@Receive</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic/{id}/receive&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">receive</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@Path</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> identifier</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Observable</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Message</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@Send</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic/{id}/send&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> qos </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">TWO</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">send</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@Path</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> identifier</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token annotation builtin">@Data</span><span class="token plain"> message</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Message</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@Subscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic/{id}/receive&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> qos </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">ONE</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">subscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@Path</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> identifier</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Observable</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Message</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@Unsubscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topics </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic/{id}/receive&quot;</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">unsubscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@Path</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> identifier</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Use Courier to create an implementation of service interface.</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> courierConfiguration </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> Courier</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Configuration</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    client </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> mqttClient</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    streamAdapterFactories </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">listOf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">RxJava2StreamAdapterFactory</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    messageAdapterFactories </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">listOf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">GsonMessageAdapter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Factory</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> courier </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">Courier</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">courierConfiguration</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> messageService </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> courier</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">create</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">MessageService</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Following annotations are supported for service interface.</p><ul><li><p><strong>@Send</strong> : A method annotation used for sending messages over the MQTT connection.</p></li><li><p><strong>@Receive</strong> : A method annotation used for receiving messages over the MQTT connection. Note: The topic needs to be subscribed for receiving messages.</p></li><li><p><strong>@Subscribe</strong> : A method annotation used for subscribing a single topic over the MQTT connection.</p></li><li><p><strong>@SubscribeMultiple</strong> : A method annotation used for subscribing multiple topic over the MQTT connection.</p></li><li><p><strong>@Unsubscribe</strong> : A method annotation used for unsubscribing a single topic over the MQTT connection.</p></li><li><p><strong>@Path</strong> : A parameter annotation used for specifying a path variable in an MQTT topic.</p></li><li><p><strong>@Data</strong> : A parameter annotation used for specifying the message object while sending a message over the MQTT connection.</p></li><li><p><strong>@TopicMap</strong> : A parameter annotation used for specifying a topic map. It is always used while subscribing multiple topics.</p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/CourierService.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/MqttConfiguration"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">MQTT Client Configuration</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/SubscribeUnsubscribe"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Subscribe &amp; Unsubscribe topics</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#usage" class="table-of-contents__link toc-highlight">Usage</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/ExperimentConfigs/index.html b/docs/ExperimentConfigs/index.html
index 745919b..fbce790 100644
--- a/docs/ExperimentConfigs/index.html
+++ b/docs/ExperimentConfigs/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Experiment Configs | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/ExperimentConfigs"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Experiment Configs | Courier Android"><meta data-rh="true" name="description" content="These are the experimentation configs used in Courier library. These are volatile configs i.e., they can be modified/moved/removed in future."><meta data-rh="true" property="og:description" content="These are the experimentation configs used in Courier library. These are volatile configs i.e., they can be modified/moved/removed in future."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/ExperimentConfigs"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/ExperimentConfigs" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/ExperimentConfigs" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Experiment Configs</span><meta itemprop="position" content="2"></li></ul></nav><div class="theme-doc-markdown markdown"><h1>Experiment Configs</h1><p>These are the experimentation configs used in Courier library. These are volatile configs i.e., they can be modified/moved/removed in future.</p><ul><li><p><strong>isPersistentSubscriptionStoreEnabled</strong> : When enabled, <code>PersistableSubscriptionStore</code> implementation of <code>SubscriptionStore</code> is used. Otherwise, <code>InMemorySubscriptionStore</code> is used. Read more about <a href="/courier-android/docs/SubscriptionStore">SubscriptionStore</a></p></li><li><p><strong>adaptiveKeepAliveConfig</strong> : This config is used for enabling <a href="/courier-android/docs/AdaptiveKeepAlive">Adaptive KeepAlive</a> feature in courier library.</p></li><li><p><strong>activityCheckIntervalSeconds</strong> : Interval at which channel activity is checked for unacknowledged MQTT packets.</p></li><li><p><strong>inactivityTimeoutSeconds</strong> : When acknowledgement for an MQTT packet is not received within this interval, the connection is reestablished.</p></li><li><p><strong>policyResetTimeSeconds</strong> : After this interval, connect retry policy is reset once the connection is successfully made.</p></li><li><p><strong>incomingMessagesTTLSecs</strong> : When there is no listener attached for an incoming message, messages are persisted for this interval.</p></li><li><p><strong>incomingMessagesCleanupIntervalSecs</strong> : Interval at which cleanup for incoming messages persistence is performed.</p></li><li><p><strong>shouldUseNewSSLFlow</strong> : Set this true for enabling alpn protocol, custom ssl socket factory.</p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/ExperimentConfigs.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/MessageStreamAdapters"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Message &amp; Stream Adapters</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/Authenticator"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Authenticator</div></a></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/GettingStarted/index.html b/docs/GettingStarted/index.html
index ce97f9d..4eb68db 100644
--- a/docs/GettingStarted/index.html
+++ b/docs/GettingStarted/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Getting Started | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/GettingStarted"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Getting Started | Courier Android"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/GettingStarted"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/GettingStarted" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/GettingStarted" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><main class="docMainContainer_uL0j docMainContainerEnhanced_oQfM"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><div class="theme-doc-markdown markdown"><h1>Getting Started</h1></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/GettingStarted.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/Installation/index.html b/docs/Installation/index.html
index ec37a74..7fdf4d2 100644
--- a/docs/Installation/index.html
+++ b/docs/Installation/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Installation | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/Installation"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Installation | Courier Android"><meta data-rh="true" name="description" content="Supported SDK versions"><meta data-rh="true" property="og:description" content="Supported SDK versions"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/Installation"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/Installation" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/Installation" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/Installation">Getting Started</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/Installation">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SampleApp">Sample App</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/ConnectionSetup">Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Getting Started</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Installation</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Installation</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="supported-sdk-versions">Supported SDK versions<a class="hash-link" href="#supported-sdk-versions" title="Direct link to heading">​</a></h2><ul><li>minSdkVersion: 21</li><li>targetSdkVersion: 31</li><li>compileSdkVersion: 31</li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="download">Download<a class="hash-link" href="#download" title="Direct link to heading">​</a></h2><p><a href="https://search.maven.org/search?q=g:%22com.gojek.courier%22%20AND%20a:%25courier%22" target="_blank" rel="noopener noreferrer"><img loading="lazy" src="https://img.shields.io/maven-central/v/com.gojek.courier/courier.svg?label=Maven%20Central" alt="Maven Central" class="img_E7b_"></a></p><p>All artifacts of Courier library are available via Maven Central.</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">repositories </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token function" style="color:#d73a49">mavenCentral</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">dependencies </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:courier:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:courier-message-adapter-gson:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:courier-stream-adapter-rxjava2:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="modules">Modules<a class="hash-link" href="#modules" title="Direct link to heading">​</a></h2><p>Courier Android library provides multiple use case specific modules</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="core-modules">Core modules<a class="hash-link" href="#core-modules" title="Direct link to heading">​</a></h3><p>These modules provide the core functionalities like Connect/Disconnect, Subscribe/Unsubscribe, Send/Receive</p><ul><li>courier</li><li>mqtt-client</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="message--stream-adapters">Message &amp; Stream Adapters<a class="hash-link" href="#message--stream-adapters" title="Direct link to heading">​</a></h3><p>Library provided implementations of message and stream adapters. Read more about them <a href="/courier-android/docs/MessageStreamAdapters">here</a>.</p><ul><li>courier-message-adapter-gson</li><li>courier-message-adapter-moshi</li><li>courier-message-adapter-protobuf</li><li>courier-stream-adapter-rxjava</li><li>courier-stream-adapter-rxjava2</li><li>courier-stream-adapter-coroutines</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="ping-sender">Ping Sender<a class="hash-link" href="#ping-sender" title="Direct link to heading">​</a></h3><p>Library provided implementations of Mqtt Ping Sender. Read more about them <a href="/courier-android/docs/PingSender">here</a>.</p><ul><li>timer-pingsender</li><li>workmanager-pingsender</li><li>workmanager-2.6.0-pingsender</li><li>alarm-pingsender</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="http-authenticator">Http Authenticator<a class="hash-link" href="#http-authenticator" title="Direct link to heading">​</a></h3><p>Library provided implementation of Authenticator. Read more about this <a href="/courier-android/docs/Authenticator">here</a>.</p><ul><li>courier-auth-http</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="mqtt-chuck">MQTT Chuck<a class="hash-link" href="#mqtt-chuck" title="Direct link to heading">​</a></h3><p>HTTP Chuck inspired tool for debugging all MQTT packets. Read more about this <a href="/courier-android/docs/MqttChuck">here</a>.</p><ul><li>chuck-mqtt</li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/Installation.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/Introduction"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Introduction</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/SampleApp"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Sample App</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#supported-sdk-versions" class="table-of-contents__link toc-highlight">Supported SDK versions</a></li><li><a href="#download" class="table-of-contents__link toc-highlight">Download</a></li><li><a href="#modules" class="table-of-contents__link toc-highlight">Modules</a><ul><li><a href="#core-modules" class="table-of-contents__link toc-highlight">Core modules</a></li><li><a href="#message--stream-adapters" class="table-of-contents__link toc-highlight">Message &amp; Stream Adapters</a></li><li><a href="#ping-sender" class="table-of-contents__link toc-highlight">Ping Sender</a></li><li><a href="#http-authenticator" class="table-of-contents__link toc-highlight">Http Authenticator</a></li><li><a href="#mqtt-chuck" class="table-of-contents__link toc-highlight">MQTT Chuck</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/Introduction/index.html b/docs/Introduction/index.html
index b62c2d3..f7548f7 100644
--- a/docs/Introduction/index.html
+++ b/docs/Introduction/index.html
@@ -5,14 +5,14 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Introduction | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/Introduction"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Introduction | Courier Android"><meta data-rh="true" name="description" content="image banner"><meta data-rh="true" property="og:description" content="image banner"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/Introduction"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/Introduction" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/Introduction" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/ConnectionSetup">Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Introduction</span><meta itemprop="position" content="1"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Introduction</h1><p><img loading="lazy" alt="image banner" src="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTU4LjkyIDUyNiI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMGFhMTM7fS5jbHMtMntmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTU1OS4xNywzMjQuNjRBOTYuNCw5Ni40LDAsMSwxLDQ4MS42MiwxNzFhOTUuNyw5NS43LDAsMCwxLDc2Ljg1LDM4LjIsMTkuMzEsMTkuMzEsMCwwLDEtMTUuNDIsMzEsMTMuNzgsMTMuNzgsMCwwLDEtMTEuNTYtNiw1OS45MSw1OS45MSwwLDAsMC0xMDkuNjUsMjkuMzhBNTkuNCw1OS40LDAsMCwwLDQzOCwzMDguMzdhNTkuOTEsNTkuOTEsMCwwLDAsOTEuODktNS40NSwxNy4yLDE3LjIsMCwwLDEsMTMuOTItNi42Mkg1NDVBMTcuMzEsMTcuMzEsMCwwLDEsNTYwLjc4LDMwNiwxNy41NiwxNy41NiwwLDAsMSw1NTkuMTcsMzI0LjY0WiIvPjxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMjI5LjY3IiB5PSIxMTMuMjYiIHdpZHRoPSI1MS42IiBoZWlnaHQ9IjI4LjAyIiByeD0iMTQuMDEiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjE0NS41OSIgeT0iMTY5LjMiIHdpZHRoPSI1MS42IiBoZWlnaHQ9IjI4LjAyIiByeD0iMTQuMDEiLz48cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjExNS43NCIgeT0iMzM3LjQyIiB3aWR0aD0iNTEuNiIgaGVpZ2h0PSIyOC4wMiIgcng9IjE0LjAxIi8+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSIyMTcuNjUiIHk9IjM5My40NiIgd2lkdGg9IjUxLjYiIGhlaWdodD0iMjguMDIiIHJ4PSIxNC4wMSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTU1OS4xNywzMjQuNjRBOTYuNCw5Ni40LDAsMSwxLDQ4MS42MiwxNzFhOTUuNyw5NS43LDAsMCwxLDc2Ljg1LDM4LjIsMTkuMzEsMTkuMzEsMCwwLDEtMTUuNDIsMzEsMTMuNzgsMTMuNzgsMCwwLDEtMTEuNTYtNiw1OS45MSw1OS45MSwwLDAsMC0xMDkuNjUsMjkuMzhBNTkuNCw1OS40LDAsMCwwLDQzOCwzMDguMzdhNTkuOTEsNTkuOTEsMCwwLDAsOTEuODktNS40NSwxNy4yLDE3LjIsMCwwLDEsMTMuOTItNi42Mkg1NDVBMTcuMzEsMTcuMzEsMCwwLDEsNTYwLjc4LDMwNiwxNy41NiwxNy41NiwwLDAsMSw1NTkuMTcsMzI0LjY0WiIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTQ4Mi43NiwxMTMuMjZjLS43MywwLTUuMjksMC02LDBhMi41MywyLjUzLDAsMCwwLS4zLDBIMzE1LjZhMTQsMTQsMCwwLDAtMTQsMTVjLjUsNy40NCw3LDEzLjA1LDE0LjQ4LDEzLjA1SDM1NGExMy44NSwxMy44NSwwLDAsMSwxMC4yNiwyMy4xM2wtLjI4LjMxYTEzLjc4LDEzLjc4LDAsMCwxLTEwLjI2LDQuNTdoLTEyMmExNCwxNCwwLDAsMC0xNCwxNS4xMWMuNTYsNy4zOSw3LjEsMTIuOTEsMTQuNTEsMTIuOTFoODguMzFhMTMuODgsMTMuODgsMCwwLDEsMTMsMTguNTljMCwuMS0uMDcuMTktLjEuMjlhMTMuODIsMTMuODIsMCwwLDEtMTMsOS4xNUgyNjUuNzRhMTQsMTQsMCwwLDAtMTQsMTUuMTFjLjU3LDcuMzksNy4xLDEyLjkxLDE0LjUxLDEyLjkxaDQ0Ljg5YTEzLjYsMTMuNiwwLDAsMSwxMy41NSwxMy43MXYuNTZhMTMuNjMsMTMuNjMsMCwwLDEtMTMuNTUsMTMuNzZIMTU1LjU0YTE0LDE0LDAsMSwwLDAsMjhIMzIwLjMyYTEzLjgsMTMuOCwwLDAsMSwxMyw5LjE4bC4xLjI4YTEzLjg4LDEzLjg4LDAsMCwxLTEzLDE4LjU3aC0xMTlhMTQsMTQsMCwxLDAsMCwyOGgxNTJhMTMuNzgsMTMuNzgsMCwwLDEsMTAuMyw0LjYxbC4yNy4zMWExMy44NSwxMy44NSwwLDAsMS0xMC4yOSwyMy4xMUgzMDAuMjdhMTQsMTQsMCwxLDAsMCwyOEg0NzAuMDhjMi45NC4xOSw5LjcuMjYsMTIuNjguMjZhMTU0LjI0LDE1NC4yNCwwLDAsMCwwLTMwOC40OFptNzYuNDEsMjExLjM4QTk2LjQsOTYuNCwwLDEsMSw0ODEuNjIsMTcxYTk1LjcsOTUuNywwLDAsMSw3Ni44NSwzOC4yLDE5LjMxLDE5LjMxLDAsMCwxLTE1LjQyLDMxLDEzLjc4LDEzLjc4LDAsMCwxLTExLjU2LTYsNTkuOTEsNTkuOTEsMCwwLDAtMTA5LjY1LDI5LjM4QTU5LjQsNTkuNCwwLDAsMCw0MzgsMzA4LjM3YTU5LjkxLDU5LjkxLDAsMCwwLDkxLjg5LTUuNDUsMTcuMiwxNy4yLDAsMCwxLDEzLjkyLTYuNjJINTQ1QTE3LjMxLDE3LjMxLDAsMCwxLDU2MC43OCwzMDYsMTcuNTYsMTcuNTYsMCwwLDEsNTU5LjE3LDMyNC42NFoiLz48cGF0aCBkPSJNNjk1Ljc3LDI3MC4zMWMwLTYzLjg1LDQ2LjE2LTEwOS40LDExMC4zLTEwOS40LDUwLjY1LDAsODksMjcuODcsOTkuMjEsNzIuODNsLTQzLjE2LDEwLjc5Yy03LjUtMjcuNTctMjcuODgtNDMuNDYtNTYtNDMuNDYtMzguMzcsMC02NC40NCwyOC4xNy02NC40NCw2OS4yNHMyNi4wNyw2OS4yMyw2NC40NCw2OS4yM2MyOS4zNywwLDUwLjk1LTE3LjA4LDU2LjY1LTQ3LjM1bDQzLjQ2LDEwLjE5Yy04LjY5LDQ4LjI1LTQ4LDc3LjMzLTEwMC4xMSw3Ny4zM0M3NDEuOTMsMzc5LjcxLDY5NS43NywzMzQuMTUsNjk1Ljc3LDI3MC4zMVoiLz48cGF0aCBkPSJNOTIyLjA2LDI5NS43OGMwLTQ3LjM1LDM3LjQ2LTgzLjkyLDg5LjYxLTgzLjkyLDUyLjQ2LDAsODkuNjIsMzYuNTcsODkuNjIsODMuOTJzLTM3LjE2LDgzLjkzLTg5LjYyLDgzLjkzQzk1OS41MiwzNzkuNzEsOTIyLjA2LDM0My4xNCw5MjIuMDYsMjk1Ljc4Wm0xMzQuODcsMGMwLTI1Ljc3LTE3LjY4LTQ1LTQ1LjI2LTQ1cy00NS4yNSwxOS4xOS00NS4yNSw0NSwxNy42OCw0NSw0NS4yNSw0NVMxMDU2LjkzLDMyMS41NiwxMDU2LjkzLDI5NS43OFoiLz48cGF0aCBkPSJNMTEyMy40NywzMDcuMTdWMjE2LjM2aDQ0LjM2djg0LjIyYzAsMjQuODgsMTMuNDksMzksMzkuMjYsMzksMjQuNTgsMCw0MS4zNy0xNi4xOCw0MS4zNy0zOVYyMTYuMzZoNDQuMzZWMzc1LjIxSDEyNTB2LTE1aC0uNmMtMTMuMTksMTIuNTgtMzEuNDgsMTkuNDgtNTMuNjUsMTkuNDhDMTE1MC40NSwzNzkuNzEsMTEyMy40NywzNTMsMTEyMy40NywzMDcuMTdaIi8+PHBhdGggZD0iTTEzMjIuNzksMzc1LjIxVjIxNi4zNmg0MS42NnYxNS4yOGguNmMxMS42OS0xMiwyNy41Ny0xOC4yOCw0Ni43NS0xOC4yOGE4OS41Niw4OS41NiwwLDAsMSwyNi4wOCw0LjE5bC05LjI5LDM5Ljg3YTc2LjcsNzYuNywwLDAsMC0yMy4wOC0zLjNjLTIzLjY4LDAtMzguMzYsMTUuNTktMzguMzYsNDguNTZ2NzIuNTNaIi8+PHBhdGggZD0iTTE0NTMuMTYsMTkwLjI4VjE0NS45MkgxNDk5djQ0LjM2Wm0uOSwxODQuOTNWMjE2LjM2aDQ0LjM2VjM3NS4yMVoiLz48cGF0aCBkPSJNMTUyMS44LDI5Ni4wOGMwLTQ4Ljg1LDM2LTg0LjIyLDg2LjMyLTg0LjIyLDUzLjM1LDAsODYuMzIsMzcuNzcsODYuMzIsODUuNDJ2MTIuNTlIMTU2NS41NmMxLjUsMjAuNjgsMTguMjgsMzMuODcsNDUsMzMuODcsMTkuNzgsMCwzMy41Ny03Ljc5LDQ4Ljg1LTIzLjY4TDE2ODcsMzQ3LjY0Yy0xOC4yOSwyMC4wOC00MiwzMi4wNy03Ni4xMywzMi4wN0MxNTU1LjA3LDM3OS43MSwxNTIxLjgsMzQ2LjQ0LDE1MjEuOCwyOTYuMDhabTEyOS40OC0xNy4zOGMtMi4xLTE4LjU4LTE4LjU4LTMwLjg3LTQyLjI2LTMwLjg3LTI0LDAtNDAuNDcsMTIuMjktNDIuODYsMzAuODdaIi8+PHBhdGggZD0iTTE3MTguMTEsMzc1LjIxVjIxNi4zNmg0MS42NnYxNS4yOGguNmMxMS42OS0xMiwyNy41OC0xOC4yOCw0Ni43Ni0xOC4yOGE4OS42Miw4OS42MiwwLDAsMSwyNi4wOCw0LjE5bC05LjI5LDM5Ljg3YTc2Ljc1LDc2Ljc1LDAsMCwwLTIzLjA4LTMuM2MtMjMuNjgsMC0zOC4zNywxNS41OS0zOC4zNyw0OC41NnY3Mi41M1oiLz48L3N2Zz4=#gh-light-mode-only" width="1959" height="526" class="img_E7b_">
 <img loading="lazy" alt="image banner" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB2aWV3Qm94PSIwIDAgMTk1OC45MiA1MjYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xe2ZpbGw6IzAwYWExMzt9LmNscy0ye2ZpbGw6I2ZmZjt9PC9zdHlsZT4KICA8L2RlZnM+CiAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNTU5LjE3LDMyNC42NEE5Ni40LDk2LjQsMCwxLDEsNDgxLjYyLDE3MWE5NS43LDk1LjcsMCwwLDEsNzYuODUsMzguMiwxOS4zMSwxOS4zMSwwLDAsMS0xNS40MiwzMSwxMy43OCwxMy43OCwwLDAsMS0xMS41Ni02LDU5LjkxLDU5LjkxLDAsMCwwLTEwOS42NSwyOS4zOEE1OS40LDU5LjQsMCwwLDAsNDM4LDMwOC4zN2E1OS45MSw1OS45MSwwLDAsMCw5MS44OS01LjQ1LDE3LjIsMTcuMiwwLDAsMSwxMy45Mi02LjYySDU0NUExNy4zMSwxNy4zMSwwLDAsMSw1NjAuNzgsMzA2LDE3LjU2LDE3LjU2LDAsMCwxLDU1OS4xNywzMjQuNjRaIi8+CiAgPHJlY3QgY2xhc3M9ImNscy0xIiB4PSIyMjkuNjciIHk9IjExMy4yNiIgd2lkdGg9IjUxLjYiIGhlaWdodD0iMjguMDIiIHJ4PSIxNC4wMSIvPgogIDxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMTQ1LjU5IiB5PSIxNjkuMyIgd2lkdGg9IjUxLjYiIGhlaWdodD0iMjguMDIiIHJ4PSIxNC4wMSIvPgogIDxyZWN0IGNsYXNzPSJjbHMtMSIgeD0iMTE1Ljc0IiB5PSIzMzcuNDIiIHdpZHRoPSI1MS42IiBoZWlnaHQ9IjI4LjAyIiByeD0iMTQuMDEiLz4KICA8cmVjdCBjbGFzcz0iY2xzLTEiIHg9IjIxNy42NSIgeT0iMzkzLjQ2IiB3aWR0aD0iNTEuNiIgaGVpZ2h0PSIyOC4wMiIgcng9IjE0LjAxIi8+CiAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTU5LjE3LDMyNC42NEE5Ni40LDk2LjQsMCwxLDEsNDgxLjYyLDE3MWE5NS43LDk1LjcsMCwwLDEsNzYuODUsMzguMiwxOS4zMSwxOS4zMSwwLDAsMS0xNS40MiwzMSwxMy43OCwxMy43OCwwLDAsMS0xMS41Ni02LDU5LjkxLDU5LjkxLDAsMCwwLTEwOS42NSwyOS4zOEE1OS40LDU5LjQsMCwwLDAsNDM4LDMwOC4zN2E1OS45MSw1OS45MSwwLDAsMCw5MS44OS01LjQ1LDE3LjIsMTcuMiwwLDAsMSwxMy45Mi02LjYySDU0NUExNy4zMSwxNy4zMSwwLDAsMSw1NjAuNzgsMzA2LDE3LjU2LDE3LjU2LDAsMCwxLDU1OS4xNywzMjQuNjRaIi8+CiAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNDgyLjc2LDExMy4yNmMtLjczLDAtNS4yOSwwLTYsMGEyLjUzLDIuNTMsMCwwLDAtLjMsMEgzMTUuNmExNCwxNCwwLDAsMC0xNCwxNWMuNSw3LjQ0LDcsMTMuMDUsMTQuNDgsMTMuMDVIMzU0YTEzLjg1LDEzLjg1LDAsMCwxLDEwLjI2LDIzLjEzbC0uMjguMzFhMTMuNzgsMTMuNzgsMCwwLDEtMTAuMjYsNC41N2gtMTIyYTE0LDE0LDAsMCwwLTE0LDE1LjExYy41Niw3LjM5LDcuMSwxMi45MSwxNC41MSwxMi45MWg4OC4zMWExMy44OCwxMy44OCwwLDAsMSwxMywxOC41OWMwLC4xLS4wNy4xOS0uMS4yOWExMy44MiwxMy44MiwwLDAsMS0xMyw5LjE1SDI2NS43NGExNCwxNCwwLDAsMC0xNCwxNS4xMWMuNTcsNy4zOSw3LjEsMTIuOTEsMTQuNTEsMTIuOTFoNDQuODlhMTMuNiwxMy42LDAsMCwxLDEzLjU1LDEzLjcxdi41NmExMy42MywxMy42MywwLDAsMS0xMy41NSwxMy43NkgxNTUuNTRhMTQsMTQsMCwxLDAsMCwyOEgzMjAuMzJhMTMuOCwxMy44LDAsMCwxLDEzLDkuMThsLjEuMjhhMTMuODgsMTMuODgsMCwwLDEtMTMsMTguNTdoLTExOWExNCwxNCwwLDEsMCwwLDI4aDE1MmExMy43OCwxMy43OCwwLDAsMSwxMC4zLDQuNjFsLjI3LjMxYTEzLjg1LDEzLjg1LDAsMCwxLTEwLjI5LDIzLjExSDMwMC4yN2ExNCwxNCwwLDEsMCwwLDI4SDQ3MC4wOGMyLjk0LjE5LDkuNy4yNiwxMi42OC4yNmExNTQuMjQsMTU0LjI0LDAsMCwwLDAtMzA4LjQ4Wm03Ni40MSwyMTEuMzhBOTYuNCw5Ni40LDAsMSwxLDQ4MS42MiwxNzFhOTUuNyw5NS43LDAsMCwxLDc2Ljg1LDM4LjIsMTkuMzEsMTkuMzEsMCwwLDEtMTUuNDIsMzEsMTMuNzgsMTMuNzgsMCwwLDEtMTEuNTYtNiw1OS45MSw1OS45MSwwLDAsMC0xMDkuNjUsMjkuMzhBNTkuNCw1OS40LDAsMCwwLDQzOCwzMDguMzdhNTkuOTEsNTkuOTEsMCwwLDAsOTEuODktNS40NSwxNy4yLDE3LjIsMCwwLDEsMTMuOTItNi42Mkg1NDVBMTcuMzEsMTcuMzEsMCwwLDEsNTYwLjc4LDMwNiwxNy41NiwxNy41NiwwLDAsMSw1NTkuMTcsMzI0LjY0WiIvPgogIDxwYXRoIGQ9Ik02OTUuNzcsMjcwLjMxYzAtNjMuODUsNDYuMTYtMTA5LjQsMTEwLjMtMTA5LjQsNTAuNjUsMCw4OSwyNy44Nyw5OS4yMSw3Mi44M2wtNDMuMTYsMTAuNzljLTcuNS0yNy41Ny0yNy44OC00My40Ni01Ni00My40Ni0zOC4zNywwLTY0LjQ0LDI4LjE3LTY0LjQ0LDY5LjI0czI2LjA3LDY5LjIzLDY0LjQ0LDY5LjIzYzI5LjM3LDAsNTAuOTUtMTcuMDgsNTYuNjUtNDcuMzVsNDMuNDYsMTAuMTljLTguNjksNDguMjUtNDgsNzcuMzMtMTAwLjExLDc3LjMzQzc0MS45MywzNzkuNzEsNjk1Ljc3LDMzNC4xNSw2OTUuNzcsMjcwLjMxWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsiLz4KICA8cGF0aCBkPSJNOTIyLjA2LDI5NS43OGMwLTQ3LjM1LDM3LjQ2LTgzLjkyLDg5LjYxLTgzLjkyLDUyLjQ2LDAsODkuNjIsMzYuNTcsODkuNjIsODMuOTJzLTM3LjE2LDgzLjkzLTg5LjYyLDgzLjkzQzk1OS41MiwzNzkuNzEsOTIyLjA2LDM0My4xNCw5MjIuMDYsMjk1Ljc4Wm0xMzQuODcsMGMwLTI1Ljc3LTE3LjY4LTQ1LTQ1LjI2LTQ1cy00NS4yNSwxOS4xOS00NS4yNSw0NSwxNy42OCw0NSw0NS4yNSw0NVMxMDU2LjkzLDMyMS41NiwxMDU2LjkzLDI5NS43OFoiIHN0eWxlPSJmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ii8+CiAgPHBhdGggZD0iTTExMjMuNDcsMzA3LjE3VjIxNi4zNmg0NC4zNnY4NC4yMmMwLDI0Ljg4LDEzLjQ5LDM5LDM5LjI2LDM5LDI0LjU4LDAsNDEuMzctMTYuMTgsNDEuMzctMzlWMjE2LjM2aDQ0LjM2VjM3NS4yMUgxMjUwdi0xNWgtLjZjLTEzLjE5LDEyLjU4LTMxLjQ4LDE5LjQ4LTUzLjY1LDE5LjQ4QzExNTAuNDUsMzc5LjcxLDExMjMuNDcsMzUzLDExMjMuNDcsMzA3LjE3WiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsiLz4KICA8cGF0aCBkPSJNMTMyMi43OSwzNzUuMjFWMjE2LjM2aDQxLjY2djE1LjI4aC42YzExLjY5LTEyLDI3LjU3LTE4LjI4LDQ2Ljc1LTE4LjI4YTg5LjU2LDg5LjU2LDAsMCwxLDI2LjA4LDQuMTlsLTkuMjksMzkuODdhNzYuNyw3Ni43LDAsMCwwLTIzLjA4LTMuM2MtMjMuNjgsMC0zOC4zNiwxNS41OS0zOC4zNiw0OC41NnY3Mi41M1oiIHN0eWxlPSJmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ii8+CiAgPHBhdGggZD0iTTE0NTMuMTYsMTkwLjI4VjE0NS45MkgxNDk5djQ0LjM2Wm0uOSwxODQuOTNWMjE2LjM2aDQ0LjM2VjM3NS4yMVoiIHN0eWxlPSJmaWxsOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ii8+CiAgPHBhdGggZD0iTTE1MjEuOCwyOTYuMDhjMC00OC44NSwzNi04NC4yMiw4Ni4zMi04NC4yMiw1My4zNSwwLDg2LjMyLDM3Ljc3LDg2LjMyLDg1LjQydjEyLjU5SDE1NjUuNTZjMS41LDIwLjY4LDE4LjI4LDMzLjg3LDQ1LDMzLjg3LDE5Ljc4LDAsMzMuNTctNy43OSw0OC44NS0yMy42OEwxNjg3LDM0Ny42NGMtMTguMjksMjAuMDgtNDIsMzIuMDctNzYuMTMsMzIuMDdDMTU1NS4wNywzNzkuNzEsMTUyMS44LDM0Ni40NCwxNTIxLjgsMjk2LjA4Wm0xMjkuNDgtMTcuMzhjLTIuMS0xOC41OC0xOC41OC0zMC44Ny00Mi4yNi0zMC44Ny0yNCwwLTQwLjQ3LDEyLjI5LTQyLjg2LDMwLjg3WiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsiLz4KICA8cGF0aCBkPSJNMTcxOC4xMSwzNzUuMjFWMjE2LjM2aDQxLjY2djE1LjI4aC42YzExLjY5LTEyLDI3LjU4LTE4LjI4LDQ2Ljc2LTE4LjI4YTg5LjYyLDg5LjYyLDAsMCwxLDI2LjA4LDQuMTlsLTkuMjksMzkuODdhNzYuNzUsNzYuNzUsMCwwLDAtMjMuMDgtMy4zYy0yMy42OCwwLTM4LjM3LDE1LjU5LTM4LjM3LDQ4LjU2djcyLjUzWiIgc3R5bGU9ImZpbGw6IHJnYigyNTUsIDI1NSwgMjU1KTsiLz4KPC9zdmc+#gh-dark-mode-only" width="1959" height="526" class="img_E7b_"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="about-courier">About Courier<a class="hash-link" href="#about-courier" title="Direct link to heading">​</a></h2><p>Courier is a kotlin library for creating long running connections using MQTT protocol.</p><p>Long running connection is a persistent connection established between client &amp; server for instant bi-directional communication. A long running connection is maintained for maximum possible duration with the help of keep alive packets. This helps in saving battery and data on mobile devices.</p><p>MQTT is an extremely lightweight protocol which works on publish/subscribe messaging model. It is designed for connections with remote locations where a &quot;small code footprint&quot; is required or the network bandwidth is limited.</p><p>The protocol usually runs over TCP/IP; however, any network protocol that provides ordered, lossless, bi-directional connections can support MQTT.</p><p>MQTT has 3 built-in QoS levels for Reliable Message Delivery:</p><ul><li><p><strong>QoS 0(At most once)</strong> - the message is sent only once and the client and broker take no additional steps to acknowledge delivery (fire and forget).</p></li><li><p><strong>QoS 1(At least once)</strong> - the message is re-tried by the sender multiple times until acknowledgement is received (acknowledged delivery).</p></li><li><p><strong>QoS 2(Exactly once)</strong> - the sender and receiver engage in a two-level handshake to ensure only one copy of the message is received (assured delivery).</p></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="features">Features<a class="hash-link" href="#features" title="Direct link to heading">​</a></h2><ul><li><p>Clean API</p></li><li><p>Adaptive Keep Alive</p></li><li><p>Message &amp; Stream Adapters</p></li><li><p>Subscription Store</p></li><li><p>Automatic Reconnect &amp; Resubscribe</p></li><li><p>Database Persistence</p></li><li><p>Backpressure handling</p></li><li><p>Alarm, Timer &amp; WorkManager Ping Sender</p></li><li><p>MQTT Chuck</p></li></ul><p>More details about features in Courier library can be found <a href="https://medium.com/gojekengineering/courier-library-for-gojeks-information-superhighway-368dc5f052fa" target="_blank" rel="noopener noreferrer">here</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/Introduction.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/Installation"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Installation</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#about-courier" class="table-of-contents__link toc-highlight">About Courier</a></li><li><a href="#features" class="table-of-contents__link toc-highlight">Features</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/LICENSE.paho/index.html b/docs/LICENSE.paho/index.html
index 296223b..9863873 100644
--- a/docs/LICENSE.paho/index.html
+++ b/docs/LICENSE.paho/index.html
@@ -5,7 +5,7 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">LICENSE.paho | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/LICENSE.paho"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="LICENSE.paho | Courier Android"><meta data-rh="true" name="description" content="Eclipse Public License - v 2.0"><meta data-rh="true" property="og:description" content="Eclipse Public License - v 2.0"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/LICENSE.paho"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/LICENSE.paho" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/LICENSE.paho" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -182,7 +182,7 @@
 file, then You may include the notice in a location (such as a LICENSE
 file in a relevant directory) where a recipient would be likely to
 look for such a notice.</p><p>  You may add additional accurate notices of copyright ownership.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/LICENSE.paho.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/LICENSE/index.html b/docs/LICENSE/index.html
index 30510d1..87010d9 100644
--- a/docs/LICENSE/index.html
+++ b/docs/LICENSE/index.html
@@ -5,7 +5,7 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">LICENSE | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/LICENSE"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="LICENSE | Courier Android"><meta data-rh="true" name="description" content="MIT License"><meta data-rh="true" property="og:description" content="MIT License"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/LICENSE"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/LICENSE" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/LICENSE" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -23,7 +23,7 @@
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/LICENSE.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/CONTRIBUTION"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">How to Contribute</div></a></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/MessageStreamAdapters/index.html b/docs/MessageStreamAdapters/index.html
index 509fb13..604199a 100644
--- a/docs/MessageStreamAdapters/index.html
+++ b/docs/MessageStreamAdapters/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Message &amp; Stream Adapters | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/MessageStreamAdapters"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Message &amp; Stream Adapters | Courier Android"><meta data-rh="true" name="description" content="Courier provides the functionality of passing your own custom or library-provided message &amp; stream adapters."><meta data-rh="true" property="og:description" content="Courier provides the functionality of passing your own custom or library-provided message &amp; stream adapters."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/MessageStreamAdapters"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/MessageStreamAdapters" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/MessageStreamAdapters" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Message &amp; Stream Adapters</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Message &amp; Stream Adapters</h1><p>Courier provides the functionality of passing your own custom or library-provided message &amp; stream adapters.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="message-adapter">Message Adapter<a class="hash-link" href="#message-adapter" title="Direct link to heading">​</a></h2><p>To serialize and deserialize received and published messages, Courier uses MessageAdapter. With this, you don&#x27;t need to handle the serialization and deserialization process when publishing and receiving messages from broker.</p><p>Courier library provides the following message adapters:</p><ul><li><p>courier-message-adapter-gson</p></li><li><p>courier-message-adapter-moshi</p></li><li><p>courier-message-adapter-protobuf</p></li></ul><p>You can also create your own custom message adapter by implementing the MessageAdapter.Factory interface.</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> MyCustomMessageAdapterFactory </span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> MessageAdapter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Factory</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">override</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">create</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">type</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Type</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> annotations</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Array</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Annotation</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> MessageAdapter</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">*</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">MyCustomMessageAdapter</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> MyCustomMessageAdapter</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">T</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">constructor</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> MessageAdapter</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">T</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">override</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fromMessage</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> message</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Message</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> T </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// convert message to custom type</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">override</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">toMessage</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">data</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> T</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Message </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// convert custom type to message</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">override</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">contentType</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// content-type supported by this adapter.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="stream-adapter">Stream Adapter<a class="hash-link" href="#stream-adapter" title="Direct link to heading">​</a></h2><p>Courier library provides the following stream adapters:</p><ul><li><p>courier-stream-adapter-rxjava</p></li><li><p>courier-stream-adapter-rxjava2</p></li><li><p>courier-stream-adapter-coroutines</p></li></ul><p>You can also create your own custom Stream adapter by implementing the StreamAdapter.Factory interface.</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> MyCustomStreamAdapterFactory </span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> StreamAdapter</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Factory</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">override</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">create</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">type</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Type</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> StreamAdapter</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Any</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> Any</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token keyword" style="color:#00009f">return</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">MyCustomStreamAdapter</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">private</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">class</span><span class="token plain"> MyCustomStreamAdapter</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">T</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> StreamAdapter</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">T</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> Any</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">override</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">adapt</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">stream</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Stream</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">T</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Any </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// convert stream to custom stream</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/MessageStreamAdapters.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/SendReceiveMessage"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Send &amp; Receive messages</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/ExperimentConfigs"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Experiment Configs</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#message-adapter" class="table-of-contents__link toc-highlight">Message Adapter</a></li><li><a href="#stream-adapter" class="table-of-contents__link toc-highlight">Stream Adapter</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/MqttChuck/index.html b/docs/MqttChuck/index.html
index df50ba1..466c66c 100644
--- a/docs/MqttChuck/index.html
+++ b/docs/MqttChuck/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">MQTT Chuck | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/MqttChuck"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="MQTT Chuck | Courier Android"><meta data-rh="true" name="description" content="MQTT Chuck is used for inspecting all the outgoing or incoming MQTT packets for an underlying MQTT connection. MQTT Chuck is similar to HTTP Chuck, used for inspecting the HTTP calls on an android application."><meta data-rh="true" property="og:description" content="MQTT Chuck is used for inspecting all the outgoing or incoming MQTT packets for an underlying MQTT connection. MQTT Chuck is similar to HTTP Chuck, used for inspecting the HTTP calls on an android application."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/MqttChuck"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/MqttChuck" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/MqttChuck" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/ConnectionSetup">Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/AdaptiveKeepAlive">Adaptive KeepAlive</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/PingSender">MQTT Ping Sender</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscriptionStore">Subscription Store</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/MqttChuck">MQTT Chuck</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/QoS">Quality of Service</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Features</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">MQTT Chuck</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>MQTT Chuck</h1><p>MQTT Chuck is used for inspecting all the outgoing or incoming MQTT packets for an underlying MQTT connection. MQTT Chuck is similar to <a href="https://github.com/jgilfelt/chuck" target="_blank" rel="noopener noreferrer">HTTP Chuck</a>, used for inspecting the HTTP calls on an android application.</p><p>MQTT Chuck uses an interceptor to intercept all the MQTT packets, persisting them and providing a UI for accessing all the MQTT packets sent or received over the MQTT connection. It also provides multiple other features like search, share, and clear data.</p><p><img loading="lazy" alt="image chuck" src="/courier-android/assets/images/mqtt-chuck-b6064afd3aa888427557125f19fdaf4c.png" width="1340" height="898" class="img_E7b_"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="usage">Usage<a class="hash-link" href="#usage" title="Direct link to heading">​</a></h2><p>Add this dependency for using MQTT chuck</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:chuck-mqtt:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>To enable MQTT chuck for your courier connection, just pass the <code>MqttChuckInterceptor</code> inside <a href="/courier-android/docs/MqttConfiguration">MqttConfiguration</a></p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">mqttConfiguration </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">MqttV3Configuration</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    mqttInterceptorList </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">listOf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">MqttChuckInterceptor</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">context</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> mqttChuckConfig</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/MqttChuck.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/SubscriptionStore"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Subscription Store</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/QoS"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Quality of Service</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#usage" class="table-of-contents__link toc-highlight">Usage</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/MqttConfiguration/index.html b/docs/MqttConfiguration/index.html
index c09be40..9a3a22a 100644
--- a/docs/MqttConfiguration/index.html
+++ b/docs/MqttConfiguration/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">MQTT Client Configuration | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/MqttConfiguration"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="MQTT Client Configuration | Courier Android"><meta data-rh="true" name="description" content="As we have seen earlier, MqttClient requires an instance of MqttV3Configuration. MqttV3Configuration allows you to configure the following properties of MqttClient:"><meta data-rh="true" property="og:description" content="As we have seen earlier, MqttClient requires an instance of MqttV3Configuration. MqttV3Configuration allows you to configure the following properties of MqttClient:"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/MqttConfiguration"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/MqttConfiguration" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/MqttConfiguration" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">MQTT Client Configuration</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>MQTT Client Configuration</h1><p>As we have seen earlier, <a href="https://github.com/gojek/courier-android/blob/main/mqtt-client/src/main/java/com/gojek/mqtt/client/MqttClient.kt" target="_blank" rel="noopener noreferrer">MqttClient</a> requires an instance of <a href="https://github.com/gojek/courier-android/blob/main/mqtt-client/src/main/java/com/gojek/mqtt/client/config/v3/MqttV3Configuration.kt" target="_blank" rel="noopener noreferrer">MqttV3Configuration</a>. MqttV3Configuration allows you to configure the following properties of MqttClient:</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="required-configs">Required Configs<a class="hash-link" href="#required-configs" title="Direct link to heading">​</a></h2><ul><li><p><strong>MqttPingSender</strong> : It is an implementation of <a href="https://github.com/gojek/courier-android/blob/main/pingsender/mqtt-pingsender/src/main/java/com/gojek/mqtt/pingsender/MqttPingSender.kt" target="_blank" rel="noopener noreferrer">MqttPingSender</a> interface, which defines the logic of sending ping requests over the MQTT connection. Read more ping sender <a href="/courier-android/docs/PingSender">here</a>.</p></li><li><p><strong>Authenticator</strong> : MqttClient uses Authenticator to refresh the connect options when username or password are incorrect. Read more Authenticator <a href="/courier-android/docs/Authenticator">here</a>.</p></li></ul><h2 class="anchor anchorWithStickyNavbar_mojV" id="optional-configs">Optional Configs<a class="hash-link" href="#optional-configs" title="Direct link to heading">​</a></h2><ul><li><p><strong>Retry Policies</strong> : There are multiple retry policies used in Courier library - connect retry policy, connect timeout policy, subscription policy. You can either use the in-built policies or provide your own custom policies.</p></li><li><p><strong>Logger</strong> : An instance of ILogger can be passed to get the internal logs.</p></li><li><p><strong>Event Handler</strong> : EventHandler allows you to listen to all the library events like connect attempt/success/failure, message send/receive, subscribe/unsubscribe.</p></li><li><p><strong>Mqtt Interceptors</strong> : By passing mqtt interceptors, you can intercept all the MQTT packets sent over the courier connection. This is also used for enabling <a href="/courier-android/docs/MqttChuck">MQTT Chuck</a>.</p></li><li><p><strong>Persistence Options</strong> : It allows you to configure the offline buffer present inside Paho. This buffer is used for storing all the messages while the client is offline.</p></li><li><p><strong>Experimentation Configs</strong> : These are the experiment configs used inside Courier library which are explained in detail <a href="/courier-android/docs/ExperimentConfigs">here</a>.</p></li><li><p><strong>WakeLock Timeout</strong> : When positive value of this timeout is passed, a wakelock is acquired while creating the MQTT connection. By default, it is 0. </p></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/MqttConfiguration.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/ConnectionSetup"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Connection Setup</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/CourierService"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Courier Service Interface</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#required-configs" class="table-of-contents__link toc-highlight">Required Configs</a></li><li><a href="#optional-configs" class="table-of-contents__link toc-highlight">Optional Configs</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/NonStandardOptions/index.html b/docs/NonStandardOptions/index.html
index 158fea8..8bfaca3 100644
--- a/docs/NonStandardOptions/index.html
+++ b/docs/NonStandardOptions/index.html
@@ -5,14 +5,14 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Non-standard Connection options | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/NonStandardOptions"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Non-standard Connection options | Courier Android"><meta data-rh="true" name="description" content="UserProperties in MqttConnectionOptions"><meta data-rh="true" property="og:description" content="UserProperties in MqttConnectionOptions"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/NonStandardOptions"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/NonStandardOptions" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/NonStandardOptions" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Non-standard Connection options</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Non-standard Connection options</h1><h3 class="anchor anchorWithStickyNavbar_mojV" id="userproperties-in-mqttconnectionoptions">UserProperties in MqttConnectionOptions<a class="hash-link" href="#userproperties-in-mqttconnectionoptions" title="Direct link to heading">​</a></h3><p>This option allows you to send user-properties in CONNECT packet for MQTT v3.1.1.</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">val</span><span class="token plain"> connectOptions </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> MqttConnectOptions</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">Builder</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">serverUris</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">listOf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">ServerUri</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">SERVER_URI</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> SERVER_PORT</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">clientId</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">clientId</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token operator" style="color:#393A34">..</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">userProperties</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                  userProperties </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">mapOf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;key1&quot;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">to</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;value1&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                    </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;key2&quot;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">to</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;value2&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                  </span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">build</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">mqttClient</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">connect</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">connectOptions</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>⚠️ **
 This is a non-standard option. As far as the MQTT specification is concerned, user-properties support is added in MQTT v5. So to support this in MQTT v3.1.1, broker needs to have support for this as well.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/NonStandardOptions.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/Authenticator"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Authenticator</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/AdaptiveKeepAlive"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Adaptive KeepAlive</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#userproperties-in-mqttconnectionoptions" class="table-of-contents__link toc-highlight">UserProperties in MqttConnectionOptions</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/PingSender/index.html b/docs/PingSender/index.html
index ea5c5b2..5a1140e 100644
--- a/docs/PingSender/index.html
+++ b/docs/PingSender/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">MQTT Ping Sender | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/PingSender"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="MQTT Ping Sender | Courier Android"><meta data-rh="true" name="description" content="When an MQTT connection between a client and the broker is idle for a long time, it may get torn down due to TCP binding timeout. In order to keep the connection alive, the client needs to send PINGREQ packets through the connection. If the connection is alive, the broker responds with a PINGRESP packet. If the client does not receive the PINGRESP packet within some fixed interval, it breaks the connection and reconnects. The interval at which these packets are sent is the Keepalive Interval."><meta data-rh="true" property="og:description" content="When an MQTT connection between a client and the broker is idle for a long time, it may get torn down due to TCP binding timeout. In order to keep the connection alive, the client needs to send PINGREQ packets through the connection. If the connection is alive, the broker responds with a PINGRESP packet. If the client does not receive the PINGRESP packet within some fixed interval, it breaks the connection and reconnects. The interval at which these packets are sent is the Keepalive Interval."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/PingSender"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/PingSender" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/PingSender" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/ConnectionSetup">Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/AdaptiveKeepAlive">Adaptive KeepAlive</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/PingSender">MQTT Ping Sender</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscriptionStore">Subscription Store</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttChuck">MQTT Chuck</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/QoS">Quality of Service</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Features</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">MQTT Ping Sender</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>MQTT Ping Sender</h1><p>When an MQTT connection between a client and the broker is idle for a long time, it may get torn down due to TCP binding timeout. In order to keep the connection alive, the client needs to send PINGREQ packets through the connection. If the connection is alive, the broker responds with a PINGRESP packet. If the client does not receive the PINGRESP packet within some fixed interval, it breaks the connection and reconnects. The interval at which these packets are sent is the Keepalive Interval.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="ping-sender">Ping Sender<a class="hash-link" href="#ping-sender" title="Direct link to heading">​</a></h2><p>Courier Android library uses Ping Sender for sending pings through the MQTT connection. It encapsulates the actual mechanism used for sending the ping requests.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="current-implementations">Current Implementations<a class="hash-link" href="#current-implementations" title="Direct link to heading">​</a></h2><h3 class="anchor anchorWithStickyNavbar_mojV" id="workmanagerpingsender">WorkManagerPingSender<a class="hash-link" href="#workmanagerpingsender" title="Direct link to heading">​</a></h3><ul><li>Uses WorkManager for sending ping requests over the MQTT connection.</li><li>Ideal for cases where the connection needs to be maintained when the app is in background.</li><li>No user permission is required for using this.</li><li>Uses WorkManager version 2.7.0 which requires compileSdkVersion to be 31 or higher.</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="usage">Usage<a class="hash-link" href="#usage" title="Direct link to heading">​</a></h3><p>Add this dependency for using WorkManagerPingSender</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:workmanager-pingsender:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Create ping sender using the factory class</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">pingSender </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> WorkPingSenderFactory</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">createMqttPingSender</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                context</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> workManagerPingSenderConfig</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="workmanager-260-pingsender">WorkManager-2.6.0 PingSender<a class="hash-link" href="#workmanager-260-pingsender" title="Direct link to heading">​</a></h3><ul><li>Uses WorkManager for sending ping requests over the MQTT connection.</li><li>Ideal for cases where the connection needs to be maintained when the app is in background.</li><li>No user permission is required for using this.</li><li>Uses WorkManager version 2.6.0 which is compatible with apps targeting lower than android 31.</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="usage-1">Usage<a class="hash-link" href="#usage-1" title="Direct link to heading">​</a></h3><p>Add this dependency for using WorkManagerPingSender</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:workmanager-2.6.0-pingsender:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Create ping sender using the factory class</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">pingSender </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> WorkPingSenderFactory</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">createMqttPingSender</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                context</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> workManagerPingSenderConfig</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="alarmpingsender">AlarmPingSender<a class="hash-link" href="#alarmpingsender" title="Direct link to heading">​</a></h3><ul><li>Uses Alarms for sending ping requests over the MQTT connection.</li><li>Ideal for cases where the connection needs to be maintained when the app is in background.</li><li>On Android 12 &amp; above, user permission is required for scheduling exact alarms.</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="usage-2">Usage<a class="hash-link" href="#usage-2" title="Direct link to heading">​</a></h3><p>Add this dependency for using AlarmPingSender</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:alarm-pingsender:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Create ping sender using the factory class</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">pingSender </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> AlarmPingSenderFactory</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">createMqttPingSender</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                context</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> alarmPingSenderConfig</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="timerpingsender">TimerPingSender<a class="hash-link" href="#timerpingsender" title="Direct link to heading">​</a></h3><ul><li>Uses Timer for sending ping requests over the MQTT connection.</li><li>Ideal for cases where the connection needs to be maintained only when the app is in foreground.</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="usage-3">Usage<a class="hash-link" href="#usage-3" title="Direct link to heading">​</a></h3><p>Add this dependency for using TimerPingSender</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">dependencies </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    implementation </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;com.gojek.courier:timer-pingsender:x.y.z&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Create ping sender using the factory class</p><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">pingSender </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> TimerPingSenderFactory</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">create</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/PingSender.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/AdaptiveKeepAlive"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Adaptive KeepAlive</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/SubscriptionStore"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Subscription Store</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#ping-sender" class="table-of-contents__link toc-highlight">Ping Sender</a></li><li><a href="#current-implementations" class="table-of-contents__link toc-highlight">Current Implementations</a><ul><li><a href="#workmanagerpingsender" class="table-of-contents__link toc-highlight">WorkManagerPingSender</a></li><li><a href="#usage" class="table-of-contents__link toc-highlight">Usage</a></li><li><a href="#workmanager-260-pingsender" class="table-of-contents__link toc-highlight">WorkManager-2.6.0 PingSender</a></li><li><a href="#usage-1" class="table-of-contents__link toc-highlight">Usage</a></li><li><a href="#alarmpingsender" class="table-of-contents__link toc-highlight">AlarmPingSender</a></li><li><a href="#usage-2" class="table-of-contents__link toc-highlight">Usage</a></li><li><a href="#timerpingsender" class="table-of-contents__link toc-highlight">TimerPingSender</a></li><li><a href="#usage-3" class="table-of-contents__link toc-highlight">Usage</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/QoS/index.html b/docs/QoS/index.html
index af76597..388984d 100644
--- a/docs/QoS/index.html
+++ b/docs/QoS/index.html
@@ -5,7 +5,7 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Quality of Service | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/QoS"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Quality of Service | Courier Android"><meta data-rh="true" name="description" content="The Quality of Service (QoS) level is an agreement between the sender &amp; the receiver of a message that defines the guarantee of delivery for a specific message. There are 3 QoS levels in MQTT:"><meta data-rh="true" property="og:description" content="The Quality of Service (QoS) level is an agreement between the sender &amp; the receiver of a message that defines the guarantee of delivery for a specific message. There are 3 QoS levels in MQTT:"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/QoS"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/QoS" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/QoS" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -14,7 +14,7 @@
 These are non standard QoS options. You need to have compatible broker to use these QoS options</p><p>We added two more Qos options</p><ul><li>QoS1 with no persistence and no retry: Like QoS1, Message delivery is acknowledged with PUBACK, but unlike QoS1 messages are
 neither persisted nor retried at send after one attempt. The message arrives at the receiver either once or not at all</li><li>QoS1 with no persistence and with retry: Like QoS1, Message delivery is acknowledged with PUBACK, but unlike QoS1 messages are
 not persisted. The messages are retried within active connection if delivery is not acknowledged.</li></ul><b> Note: </b> Both these Qos options have same behaviour (without retry) during publish and different behaviour for subscribe</div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/QoS.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/MqttChuck"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">MQTT Chuck</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/CONTRIBUTION"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">How to Contribute</div></a></nav></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/SampleApp/index.html b/docs/SampleApp/index.html
index e5306ef..685dc4e 100644
--- a/docs/SampleApp/index.html
+++ b/docs/SampleApp/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Sample App | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/SampleApp"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Sample App | Courier Android"><meta data-rh="true" name="description" content="A sample application is added here which makes Courier connection with a HiveMQ public broker. It demonstrates multiple functionalities of Courier like Connect, Disconnect, Publish, Subscribe and Unsubscribe."><meta data-rh="true" property="og:description" content="A sample application is added here which makes Courier connection with a HiveMQ public broker. It demonstrates multiple functionalities of Courier like Connect, Disconnect, Publish, Subscribe and Unsubscribe."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/SampleApp"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/SampleApp" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/SampleApp" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/Installation">Getting Started</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Installation">Installation</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/SampleApp">Sample App</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/ConnectionSetup">Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Getting Started</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Sample App</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Sample App</h1><p>A sample application is added <a href="https://github.com/gojek/courier-android/tree/main/app" target="_blank" rel="noopener noreferrer">here</a> which makes Courier connection with a <a href="https://broker.mqttdashboard.com/" target="_blank" rel="noopener noreferrer">HiveMQ</a> public broker. It demonstrates multiple functionalities of Courier like Connect, Disconnect, Publish, Subscribe and Unsubscribe.</p><p><img loading="lazy" alt="image demo" src="/courier-android/assets/images/sample-app-interface-615106e456484de7c9826e40510608d5.png" width="376" height="735" class="img_E7b_"></p><h2 class="anchor anchorWithStickyNavbar_mojV" id="running-sample-app">Running sample app<a class="hash-link" href="#running-sample-app" title="Direct link to heading">​</a></h2><ul><li>Clone the project from <a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer">GitHub</a></li><li>Run command <code>./gradlew :app:installDebug</code></li></ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/SampleApp.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/Installation"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Installation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/ConnectionSetup"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Connection Setup</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#running-sample-app" class="table-of-contents__link toc-highlight">Running sample app</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/SendReceiveMessage/index.html b/docs/SendReceiveMessage/index.html
index d24bc3d..2ee2789 100644
--- a/docs/SendReceiveMessage/index.html
+++ b/docs/SendReceiveMessage/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Send &amp; Receive messages | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/SendReceiveMessage"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Send &amp; Receive messages | Courier Android"><meta data-rh="true" name="description" content="Courier library provides the functionality of sending &amp; receiving messages through both service interface and MqttClient."><meta data-rh="true" property="og:description" content="Courier library provides the functionality of sending &amp; receiving messages through both service interface and MqttClient."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/SendReceiveMessage"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/SendReceiveMessage" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/SendReceiveMessage" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Send &amp; Receive messages</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Send &amp; Receive messages</h1><p>Courier library provides the functionality of sending &amp; receiving messages through both service interface and MqttClient.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="sendreceive-using-service-interface">Send/Receive using Service Interface<a class="hash-link" href="#sendreceive-using-service-interface" title="Direct link to heading">​</a></h2><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">interface</span><span class="token plain"> MessageService </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@Receive</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic/{id}/receive&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">receive</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@Path</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> identifier</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Observable</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Message</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@Send</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic/{id}/send&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> qos </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">TWO</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">send</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@Path</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> identifier</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token annotation builtin">@Data</span><span class="token plain"> message</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Message</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">messageService</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">send</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;user-id&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> message</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">messageService</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">receive</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;user-id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> message </span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token function" style="color:#d73a49">print</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">message</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="sendreceive-using-mqttclient">Send/Receive using MqttClient<a class="hash-link" href="#sendreceive-using-mqttclient" title="Direct link to heading">​</a></h2><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">mqttClient</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">send</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">message</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> topic</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">TWO</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">mqttClient</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">addMessageListener</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">object</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> MessageListener </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">override</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">onMessageReceived</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">mqttMessage</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> MqttMessage</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token function" style="color:#d73a49">print</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">mqttMessage</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Note</strong> : Only messages for those topics can be received through receive api, which are already subscribed</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/SendReceiveMessage.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/SubscribeUnsubscribe"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Subscribe &amp; Unsubscribe topics</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/MessageStreamAdapters"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Message &amp; Stream Adapters</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#sendreceive-using-service-interface" class="table-of-contents__link toc-highlight">Send/Receive using Service Interface</a></li><li><a href="#sendreceive-using-mqttclient" class="table-of-contents__link toc-highlight">Send/Receive using MqttClient</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/SubscribeUnsubscribe/index.html b/docs/SubscribeUnsubscribe/index.html
index 580e44f..3d3b871 100644
--- a/docs/SubscribeUnsubscribe/index.html
+++ b/docs/SubscribeUnsubscribe/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Subscribe &amp; Unsubscribe topics | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/SubscribeUnsubscribe"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Subscribe &amp; Unsubscribe topics | Courier Android"><meta data-rh="true" name="description" content="Courier library provides the functionality of subscribing &amp; unsubscribing topics through both service interface and MqttClient."><meta data-rh="true" property="og:description" content="Courier library provides the functionality of subscribing &amp; unsubscribing topics through both service interface and MqttClient."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/SubscribeUnsubscribe"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/SubscribeUnsubscribe" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/SubscribeUnsubscribe" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/ConnectionSetup">Guides</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ConnectionSetup">Connection Setup</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttConfiguration">MQTT Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/CourierService">Courier Service Interface</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/SubscribeUnsubscribe">Subscribe &amp; Unsubscribe topics</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/SendReceiveMessage">Send &amp; Receive messages</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MessageStreamAdapters">Message &amp; Stream Adapters</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/ExperimentConfigs">Experiment Configs</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/Authenticator">Authenticator</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/NonStandardOptions">Non-standard Connection options</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Guides</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Subscribe &amp; Unsubscribe topics</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Subscribe &amp; Unsubscribe topics</h1><p>Courier library provides the functionality of subscribing &amp; unsubscribing topics through both service interface and MqttClient.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="subscribeunsubscribe-through-service-interface">Subscribe/Unsubscribe through Service Interface<a class="hash-link" href="#subscribeunsubscribe-through-service-interface" title="Direct link to heading">​</a></h2><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">interface</span><span class="token plain"> MessageService </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@Subscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topic </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic/{id}/receive&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> qos </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">ONE</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">subscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@Path</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> identifier</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Observable</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">Message</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@SubscribeMultiple</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">subscribeMultiple</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@TopicMap</span><span class="token plain"> topics</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> Map</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">String</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> QoS</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token annotation builtin">@Unsubscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">topics </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic/{id}/receive&quot;</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token keyword" style="color:#00009f">fun</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">unsubscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token annotation builtin">@Path</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> identifier</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> String</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">messageService</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">subscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;user-id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">subscribe</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> message </span><span class="token operator" style="color:#393A34">-&gt;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token function" style="color:#d73a49">print</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">message</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">messageService</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">subscribeMultiple</span><span class="token punctuation" style="color:#393A34">(</span><span class="token function" style="color:#d73a49">mapOf</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic1&quot;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">to</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">ONE</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic2&quot;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">to</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">TWO</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">messageService</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">unsubscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;user-id&quot;</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h2 class="anchor anchorWithStickyNavbar_mojV" id="subscribeunsubscribe-through-mqttclient">Subscribe/Unsubscribe through MqttClient<a class="hash-link" href="#subscribeunsubscribe-through-mqttclient" title="Direct link to heading">​</a></h2><div class="language-kotlin codeBlockContainer_MPoW theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_B9tL"><pre tabindex="0" class="prism-code language-kotlin codeBlock__0OG thin-scrollbar"><code class="codeBlockLines_gEuF"><span class="token-line" style="color:#393A34"><span class="token plain">mqttClient</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">subscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic1&quot;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">to</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">ZERO</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic2&quot;</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">to</span><span class="token plain"> QoS</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">ONE</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">mqttClient</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">unsubscribe</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic1&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string-literal singleline string" style="color:#e3116c">&quot;topic2&quot;</span><span class="token punctuation" style="color:#393A34">)</span><br></span></code></pre><div class="buttonGroup_hRr1"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_W9eQ" aria-hidden="true"><svg class="copyButtonIcon_XEyF" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_i9w9" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/SubscribeUnsubscribe.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/CourierService"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Courier Service Interface</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/SendReceiveMessage"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Send &amp; Receive messages</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#subscribeunsubscribe-through-service-interface" class="table-of-contents__link toc-highlight">Subscribe/Unsubscribe through Service Interface</a></li><li><a href="#subscribeunsubscribe-through-mqttclient" class="table-of-contents__link toc-highlight">Subscribe/Unsubscribe through MqttClient</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/SubscriptionStore/index.html b/docs/SubscriptionStore/index.html
index ee48df3..502ad61 100644
--- a/docs/SubscriptionStore/index.html
+++ b/docs/SubscriptionStore/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Subscription Store | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/docs/SubscriptionStore"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Subscription Store | Courier Android"><meta data-rh="true" name="description" content="Courier library uses Subscription Store for maintaining the current subscriptions and pending unsubscribe requests."><meta data-rh="true" property="og:description" content="Courier library uses Subscription Store for maintaining the current subscriptions and pending unsubscribe requests."><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/docs/SubscriptionStore"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/SubscriptionStore" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/docs/SubscriptionStore" hreflang="x-default"><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link navbar__link--active" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docsWrapper_mKqt"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><div class="docPage_ualW"><aside class="theme-doc-sidebar-container docSidebarContainer_UQUJ"><div class="sidebar_RiAD"><nav class="menu thin-scrollbar menu_izAj"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/Introduction">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/Installation">Getting Started</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/courier-android/docs/ConnectionSetup">Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/AdaptiveKeepAlive">Adaptive KeepAlive</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/PingSender">MQTT Ping Sender</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/courier-android/docs/SubscriptionStore">Subscription Store</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/MqttChuck">MQTT Chuck</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/courier-android/docs/QoS">Quality of Service</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/CONTRIBUTION">Contribution</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/courier-android/docs/LICENSE">License</a></li></ul></nav></div></aside><main class="docMainContainer_uL0j"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/courier-android/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_kU5B"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Features</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Subscription Store</span><meta itemprop="position" content="2"></li></ul></nav><div class="tocCollapsible_bZGK theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_l22C">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Subscription Store</h1><p>Courier library uses Subscription Store for maintaining the current subscriptions and pending unsubscribe requests.</p><p>Currently there are two implementations of SubscriptionStore provided by Courier library.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="persistablesubscriptionstore">PersistableSubscriptionStore<a class="hash-link" href="#persistablesubscriptionstore" title="Direct link to heading">​</a></h2><p>In this implementation, the current subscriptions are maintained in-memory and pending unsubscribe requests are maintained in shared preferences. When client reconnects, subscription packets are sent again and pending unsubscribe packets are also sent, if present.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="inmemorysubscriptionstore">InMemorySubscriptionStore<a class="hash-link" href="#inmemorysubscriptionstore" title="Direct link to heading">​</a></h2><p>In this implementation, the current subscriptions are maintained in-memory and no pending unsubscribe requests are maintained. When client reconnects, subscription packets are sent again.</p><h2 class="anchor anchorWithStickyNavbar_mojV" id="usage">Usage<a class="hash-link" href="#usage" title="Direct link to heading">​</a></h2><p>You can choose the subscription store implementation to be used using <a href="/courier-android/docs/ExperimentConfigs">ExperimentConfigs</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/gojek/courier-android/edit/main/docs/docs/SubscriptionStore.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_dcUD" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/courier-android/docs/PingSender"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">MQTT Ping Sender</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/courier-android/docs/MqttChuck"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">MQTT Chuck</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#persistablesubscriptionstore" class="table-of-contents__link toc-highlight">PersistableSubscriptionStore</a></li><li><a href="#inmemorysubscriptionstore" class="table-of-contents__link toc-highlight">InMemorySubscriptionStore</a></li><li><a href="#usage" class="table-of-contents__link toc-highlight">Usage</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index 6491c8c..2ced5cb 100644
--- a/index.html
+++ b/index.html
@@ -5,13 +5,13 @@
 <meta name="viewport" content="width=device-width,initial-scale=1">
 <meta name="generator" content="Docusaurus v2.0.0-beta.20">
 <title data-rh="true">Courier Android | Courier Android</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/courier-android/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Courier Android | Courier Android"><link data-rh="true" rel="icon" href="/courier-android/img/courier-logo.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/courier-android/"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/courier-android/" hreflang="x-default"><script data-rh="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/courier-android/</span> </p>\n   <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),r=window.location.pathname,s="/"===r.substr(-1)?r:r+"/";e.innerHTML=s}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/courier-android/assets/css/styles.4186980c.css">
-<link rel="preload" href="/courier-android/assets/js/runtime~main.272c29f2.js" as="script">
+<link rel="preload" href="/courier-android/assets/js/runtime~main.4943ce2f.js" as="script">
 <link rel="preload" href="/courier-android/assets/js/main.8d3b942b.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div id="docusaurus-base-url-issue-banner-container"></div><div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/courier-android/"><div class="navbar__logo"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/courier-android/img/courier-logo.svg" alt="Courier" class="themedImage_W2Cr themedImage--dark_oUvU"></div><b class="navbar__title text--truncate">Courier</b></a><a class="navbar__item navbar__link" href="/courier-android/docs/Introduction">Docs</a><a class="navbar__item navbar__link" href="/courier-android/docs/ConnectionSetup">Guides</a><a class="navbar__item navbar__link" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_S7eR colorModeToggle_vKtC"><button class="clean-btn toggleButton_rCf9 toggleButtonDisabled_Pu9x" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_v35p"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_nQuB"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_dLyj"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper"><div class="homeHero"><div class="container banner"><div class="row"><div class="innerRow"><div class="homeTitle">Courier Android</div><small class="homeSubTitle">Information Superhighway</small><a class="button" href="docs/Introduction">Documentation</a></div></div></div></div><div id="docs"><section class="features_t9lD"><div class="container"><div class="row"><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451.277 451.277" style="enable-background:new 0 0 451.277 451.277" xml:space="preserve" class="featureSvg_GfXr" role="img"><circle style="fill:#45b39c" cx="225.638" cy="225.638" r="225.638"></circle><path style="opacity:0.1;enable-background:new" d="m444.558 280.446-166.57-166.57-1.598-1.598c-13.116-12.787-31.028-20.638-50.773-20.638-40.195 0-72.963 32.767-72.963 72.963v38.033h-10.766c-8.556 0-15.467 6.911-15.467 15.467v126.086c0 4.137 1.645 7.945 4.372 10.719l.517.517 95.806 95.835c105.066-.679 193.066-73.139 217.442-170.814z"></path><path style="fill:#dc8744" d="M309.4 212.044H141.877c-8.535 0-15.456 6.92-15.456 15.456v116.667c0 8.536 6.92 15.456 15.456 15.456H309.4c8.535 0 15.455-6.92 15.455-15.456V227.5c0-8.536-6.92-15.456-15.455-15.456z"></path><path style="fill:#3a556a" d="M272.568 164.618v38.023h26.034v-38.023c0-40.232-32.732-72.964-72.964-72.964v26.034c25.879 0 46.93 21.051 46.93 46.93z"></path><path style="fill:#64798a" d="M178.709 202.642v-38.023c0-25.879 21.052-46.93 46.929-46.93V91.654c-40.231 0-72.963 32.732-72.963 72.964v38.023h26.034z"></path><path style="fill:#f6c358" d="M309.4 202.642h-83.762V350.22H309.4c8.535 0 15.455-6.92 15.455-15.456V218.097c0-8.536-6.92-15.455-15.455-15.455z"></path><path style="fill:#fcd462" d="M178.711 202.642H141.877c-8.535 0-15.456 6.92-15.456 15.456v116.667c0 8.536 6.92 15.456 15.456 15.456h83.761V202.642h-46.927z"></path><path style="fill:#dc8744" d="M243.305 253.907c0-9.757-7.909-17.667-17.667-17.667-9.757 0-17.667 7.91-17.667 17.667 0 6.272 3.29 11.747 8.217 14.882l-5.269 25.104h29.436l-5.268-25.104c4.928-3.135 8.218-8.609 8.218-14.882z"></path></svg></div><div class="text--center padding-horiz--md"><h3>Secure</h3><p>Supports SSL/TLS for secure connection</p></div></div><div class="col col--4"><div class="text--center"><svg xmlns="http://www.w3.org/2000/svg" baseProfile="tiny" viewBox="0 0 1100 280" overflow="visible" class="featureSvg_GfXr" role="img"><path d="M399.6 142.5c1.7 3.7 3.3 7.5 4.8 11.4a149.3 149.3 0 0 1 4.9-11.6c1.7-3.7 3.5-7.4 5.3-10.9L465 32c.9-1.7 1.8-3 2.8-4 .9-.9 2-1.6 3.2-2.1s2.5-.7 4-.7h40v196.6h-40.2V108.6c0-5.5.3-11.4.8-17.8l-52.1 101.1c-1.6 3.2-3.8 5.5-6.5 7.2-2.7 1.6-5.9 2.4-9.4 2.4h-6.2c-3.5 0-6.6-.8-9.4-2.4-2.7-1.6-4.9-4-6.5-7.2L333 90.7c.4 3.2.6 6.3.8 9.4s.3 6 .3 8.6v113.1h-40.2V25.2h40c1.5 0 2.8.2 4 .7s2.2 1.1 3.2 2.1c.9.9 1.9 2.3 2.8 4l50.6 99.9c1.7 3.4 3.5 6.9 5.1 10.6zm331.1-19.1c0 8.5-.9 16.6-2.6 24.4-1.8 7.8-4.3 15.1-7.6 21.9s-7.3 13.2-12.2 19c-4.8 5.9-10.3 11-16.4 15.5l49.8 54.4h-37.5c-5.4 0-10.3-.7-14.7-2s-8.3-3.9-11.7-7.9l-24.4-27.4c-4 .8-8 1.4-12.1 1.9-4.1.4-8.3.7-12.6.7-15.3 0-29.3-2.6-41.9-7.7s-23.4-12.2-32.3-21.3c-9-9-15.9-19.7-20.8-31.9s-7.4-25.5-7.4-39.7 2.5-27.4 7.4-39.7c4.9-12.2 11.8-22.9 20.8-31.9s19.7-16.1 32.3-21.2 26.5-7.7 41.9-7.7c15.3 0 29.2 2.6 41.8 7.8s23.3 12.3 32.2 21.3 15.8 19.6 20.7 31.9c4.9 12.2 7.3 25.4 7.3 39.6zm-46.7 0c0-9.7-1.3-18.5-3.8-26.3s-6.1-14.4-10.9-19.8c-4.7-5.4-10.5-9.5-17.3-12.4s-14.6-4.3-23.4-4.3-16.7 1.4-23.6 4.3-12.7 7-17.4 12.4-8.3 12-10.9 19.8c-2.5 7.8-3.8 16.5-3.8 26.3s1.3 18.6 3.8 26.4 6.1 14.4 10.9 19.8c4.7 5.4 10.5 9.5 17.4 12.4 6.9 2.8 14.7 4.3 23.6 4.3 8.7 0 16.5-1.4 23.4-4.3 6.8-2.8 12.6-7 17.3-12.4s8.3-12 10.9-19.8 3.8-16.6 3.8-26.4zm193.2-98.3v36.2h-53.3v160.5h-45.6V61.3H725V25.1h152.2zm174.6 0v36.2h-55.3v160.5h-45.6V61.3h-53.3V25.1h154.2z" fill="#606"></path><path d="M46 41.4v31h.6c84.4 0 153.2 68 153.9 151.8h30.1C229.8 123.5 147.4 41.7 46 41.4zm0 64v31h.6c48.9 0 88.8 39.3 89.5 87.8h30.1c-.7-65.4-54.3-118.5-120.2-118.8zM248.8 144V81.5C241.1 71 231.6 59 222.1 49.7c-10.6-10.5-23-20-35-28.3h-66.4C178.9 42.3 225.6 87.2 248.8 144z" fill="#fff"></path><path d="M46.5 136.4h-.6V214c0 5.6 4.6 10.2 10.2 10.2H136c-.7-48.5-40.5-87.8-89.5-87.8zm0-64h-.6v33c65.9.3 119.5 53.3 120.2 118.8h34.2C199.7 140.4 131 72.4 46.5 72.4zm202.3 141.7V144c-23.2-56.8-69.9-101.7-128-122.6H56.1c-5.6 0-10.2 4.6-10.2 10.2v9.9c101.4.3 183.9 82 184.5 182.8h8.2c5.7-.1 10.2-4.6 10.2-10.2zM222.1 49.7c9.4 9.4 19 21.3 26.7 31.8v-50a10.07 10.07 0 0 0-10.1-10.1h-51.5c12 8.3 24.4 17.8 34.9 28.3z" fill="#606"></path></svg></div><div class="text--center padding-horiz--md"><h3>Reliable Message Delivery</h3><p>Supports MQTTv3.1.1 for reliable message delivery through various QoS levels</p></div></div><div class="col col--4"><div class="text--center"><svg viewBox="0 0 196 196" fill="none" xmlns="http://www.w3.org/2000/svg" class="featureSvg_GfXr" role="img"><path d="M98 196c54.124 0 98-43.876 98-98S152.124 0 98 0 0 43.876 0 98s43.876 98 98 98Z" fill="#3DDC84"></path><path d="M49.766 52.292a15.313 15.313 0 0 1 15.22 15.313v76.103M146.234 143.708H85.306v-15.236A30.472 30.472 0 0 1 115.778 98h15.312a15.218 15.218 0 0 0 15.221-15.313 30.476 30.476 0 0 0-25.378-30.053 30.472 30.472 0 0 0-33.866 20.008 31.806 31.806 0 0 0-1.317 5.038" stroke="#fff" stroke-width="6.13" stroke-linecap="round"></path></svg></div><div class="text--center padding-horiz--md"><h3>Android 12 compatible</h3><p>Courier library is compatible with Android 12</p></div></div></div></div></section></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/Installation">Getting Started</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/ConnectionSetup">Guides</a></li><li class="footer__item"><a class="footer__link-item" href="/courier-android/docs/AdaptiveKeepAlive">Features</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Gojek open source<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://discord.gg/C823qK4AK7" target="_blank" rel="noopener noreferrer" class="footer__link-item">Discord<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/gojektech" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gojek.github.io/courier/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Courier<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/docs/Introduction" target="_blank" rel="noopener noreferrer" class="footer__link-item">E2E example<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gojek.github.io/courier/blog" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blogs<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/gojek/courier-android" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://github.com/gojek/" target="_blank" rel="noopener noreferrer" class="footerLogoLink_gHmE"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--light_TfLj footer__logo" width="250" height="35"><img src="/courier-android/img/gojek-logo-white.png" alt="Gojek Open Source Logo" class="themedImage_W2Cr themedImage--dark_oUvU footer__logo" width="250" height="35"></a></div><div class="footer__copyright">Copyright © 2023 Gojek</div></div></div></footer></div>
-<script src="/courier-android/assets/js/runtime~main.272c29f2.js"></script>
+<script src="/courier-android/assets/js/runtime~main.4943ce2f.js"></script>
 <script src="/courier-android/assets/js/main.8d3b942b.js"></script>
 </body>
 </html>
\ No newline at end of file