There's a lotofthemyoucancustomizeontopofahdevelopmentplatform, likeanoracleor a s, a p lotofwarehousesinplacesandNigeriadothisoryoudowhat a lotoflargecompaniesdo.
A lotoflargetechcompaniesandFortune 500 companieswherethey, um, justbuildtheirown.
Andifyou'regonnadothatandit's 2015 2016.
You'reprobablygonnachoose, like a veryboringbutsensiblestack, maybesomethinglike C sharpdotnetorjangowithpythonorrubyonrails, somethingwith a postpressorsomesortofsequel.
Um, mediumoffline, whichisourwordforlikejustusing a nativeapplike a iPhoneapp, anandroidapporwritingforPlattlikeWindowsorMac, a lessis a lotmoreattractive, and I'vedoneworkonactslikethatbeforeforpharmacysupplychain.
SoliketheexampleislikeyoupaytohaveofflinefeaturesinconsumerAPSlikelikeSpotifyandlikedo a lingothatgiveyouofflinefeaturesThatduelInglisseemstoworkreallywell.
ButlikeSpotifyeyes, itseemslikeeverytime I geton a plane, itforgetswhat I saidtodownloadoffline.
Um, bigofflineisreallyimportanttothinkabout, becausethisishowhospital I t systemsworkmostofthem.
Historically, thisischanging.
Butwhatyou'vehadoverthepastcoupleofdecadesisExcusemelike a verylargeonsitedeploymentofservers, even a serverwarehouse.
Youhavehighteastaff, youhave a localareanetwork, andit's becausecliniciansneedtheirsoftwaretoworkoffline.
It's notlikeofflineisnewtotechcompaniesinthisindustry, Butas I said, like, that's notgonnaworkforus.
Wecan't put a serverin, um, like, rightnowwe'reworkingwithabout 30,000 pharmacies, andthere's hundredsofthousandstoplanfor.
SowewentwiththeWebwithofflinefirstintheWeb.
Thatgetsuskindofthethingswewant.
Lo I t supportYoucoulddothewholethingoffline, butit's stilltheInternet.
It's stillsinking.
Um, andthere's a lotoftalksonwhichdistributeddatabasetouse, likethebasicsetupforanofflineapp.
Webappis, Youput a serviceworkerinyoutellittocashthestaticapplication, andthenyouworkwithlocalstorageinthebrowser, whichhasbecome a lotmoreattractiveoverthelastseveralyears.
Yougettouse a lotoftheuser's availablediskspace, a percentageofit.
Nexttime, timebaseddatabecomes a reallybigissuebecauseyouneedtosink.
Um, someofit, butnotallofit.
Butthenthiscomesinto, like, thedomainmodelofwhatisokaytocutoffbecauseliketocalculatehowmuchstuffyouhaveat a storeorhowmuchmoneyyouhaveinyourbankaccount.
It's usuallylikewhatwastheopeningtransaction.
Andthenlet's addallofthedebitsandcreditsovertimeuntil I getthecurrentbalance.
Butif I onlysinkyourlast 10 transactions, that's notgoingtogiveyoutherightdatatogettherightandnumber.
Soyoulookatwhattosinkas a developer, andyouhaveallofthesedifferentchoices.
Theotherthingthat I'm notgonnaspend a lotoftimeon, isitwithsupplychainmanagement, youhavereallycrazyaccessrules.
DoingWebbasedapplicationsis, ismodelingJason, Um, modeling, Um, sortofwithout a relationaldatabase.
Andthereisn't a SWfarasweknowsofar, likethereisn't oneclearwaytodothisthatalwayswins.
There's a lotofdifferentstrategiestodealwiththeproblems.
Sonormalizationlikeyouwant, um, thistableandthistableandthistabletobeneatlyseparated, andyouhaveforeignkeysbetweenbetweenthemlikethisis a database.
That's awesome.
That's whatyouwant.
Andsoyouyou're a developerand, like, I'm gonnadothisandJason.
So I'm gonnacreate a document, a document, a document, a document, andthentogetthisdocumentandtojoinonthem, you'remakinghttprequestsover a networkbecauseyoudon't knowwhattherelationisyet.
SoSothenyousay, OK, that's toomuch.
I'm gonnaputeverythingintheJaysondocument, andthen a usersays, Hey, weneedtochangethenameofthisitemuse.
Okay, Letmejustdo a bulkupdateonhalf a gigofdataandhopethattherearen't anyconflicts.
Soit's It's like a businessrulethatimpactshowyourmodeling, theJasonandwhen a usersays, Hey, I needtomake a newtypeofdatabasetableyouknow, CouchpeopleWhat?
Whydoyousaylikeitreallydependsonwhatyou'redoing?
Um, soitmakeshaving a singleframeworkforeverything.
It's just a remoteendpointthatwhen a userstartsmayinitializetheapplication.
Um, wehavethebrowsermake a callto a lambdaandthelandittakesthetheuserwhoitis, whattheirlocationis, whatprogramstheyhaveaccesstoanditgoesintotalkstocouchdeviantsisHey, whatdocumentsaysitsuserneedcouches.
Okay.
Basedonyourbusinesslogic, it's X y and Z.
Landis's thankssendsittothebrowser, andthentheuserhas a subsetofthedatathattheygettouseandasanasidelikethishassofarbeenworkingforus.