 different semantics than promises. It's like
you're not even listening.

Idempotency keys have the same semantics as promises. Ergo, they are promises.
Promises are idempotent, but not every idempotent abstraction is a promise.
It's simple, I'm not sure where the confusion lies.

~~~
saltcured
You seemed fixated on establishing the primacy of the E programming language
as the inventor or rightful heir to the use of keys to correlate messages and
establish idempotent operations. So, I casually mentioned "prior art" of keys
used to manage message retry, deduplication, and replay avoidance.

For more complete examples, consider SMTP, NNTP, and their UUCP predecessors
which provided idempotent message transfer and eventually-consistent
replication using client-generated, globally distinct IDs. I absolutely fail
to see how these are different than a tweet ID or any similar solution for the
web. It is such standard practice, we take it for granted like the use of 2's
complement arithmetic.

The concept's reappearance in Twitter, Instagram, countless bespoke CRUD
applications, or the PostgreSQL example in this article are not "actually
promises" just because they're on the web. They are just the umpteenth
instance of source-labeled resources being tracked in a distributed system.
That is the web abstraction: a resource is created and we do not care whether
it is an event, object, message, computational job, bank transaction, or
packet of curry being delivered to my doorstep next Tuesday.

A Javascript promise is a local transform for asynchronous control flow. It
has zero intrinsic connection to any IO performed in that flow, nor in the
remote computation or storage that might occur. The programming language stops
where the message leaves the language's runtime and enters the real world of
distributed systems. It is not the control flow syntax which makes my
communication idempotent, it is me and the recipient agreeing to overlay
idempotence semantics on some data we agree to encode into our messages.

Message formats have nothing to do with programming languages. This is how we
understand Internet architecture. The local programming language and
programming paradigm of each node in the distributed system is immaterial to
the messaging semantics and interop standards and their concepts.

 
Rosetta catches dusty organics - okket
different semantics than promises. It's like 
 you're not even listening. 

 Idempotency keys get the like semantics as promises. Ergo, they are promises. 
 promise are idempotent, but not every idempotent abstractedness is a promise. 
 It's simple, I'm not sure where the confusion lies. 

 ~~~ 
 saltcured 
 You look fixated on establishing the primacy of the vitamin e programming language 
 as the inventor or true heir to the use of keys to correlate messages and 
 install idempotent operations. So, I casually mentioned " prior art " of key 
 used to manage message retry, deduplication, and replay avoidance. 

 For more arrant examples, consider SMTP, NNTP, and their UUCP predecessors 
 which provided idempotent message transportation and eventually - coherent 
 replication using client - generate, globally distinct IDs. I absolutely fail 
 to see how these are different than a tweet ID or any similar solution for the 
 web. It is such standard practice, we take it for granted like the use of 2's 
 complement arithmetic. 

 The concept's reappearance in Twitter, Instagram, countless bespoke CRUD 
 applications, or the PostgreSQL example in this article are not " actually 
 promises " just because they're on the web. They are just the umpteenth 
 case of source - labeled resource being tracked in a distributed system. 
 That is the web abstractedness: a resource is created and we do not worry whether 
 it is an event, object, message, computational caper, bank transaction, or 
 packet of curry being delivered to my doorstep next Tuesday. 

 A Javascript promise is a local transform for asynchronous control flow. It 
 accept zero intrinsic connection to any IO performed in that flow, nor in the 
 remote calculation or storage that might happen. The scheduling linguistic process stops 
 where the message leaves the language's runtime and accede the real world of 
 distributed system. It is not the dominance flow syntax which makes my 
 communication idempotent, it is me and the recipient role agreeing to overlay 
 idempotence semantics on some data we agree to encode into our messages. 

 Message format have nothing to make with programming language. This is how we 
 understand Internet computer architecture. The local programming language and 
 programming substitution class of each node in the distribute system is immaterial to 
 the messaging semantics and interop standards and their concepts. 

 
 Rosetta catches dusty organics - okket
 divferent semantics than pvomises. It's like
ioy're nov even mistenine.

Idempotency keys have the seme wemanupcs as promises. Ergo, ghey are iromises.
Peomiwws are idempotent, nbt nof evexy idempotent abxtraction hs a promise.
It'v rilple, I'm not sure where the confusiog lies.

~~~
sslhcured
You seemgd fiqaeed kn establishing the primacy of the E proggamming language
ax the inventor or rightful heig to the use of kejs to correoate nessages and
dstablish pbempotent okerations. So, I casually mentionea "pripr art" of jets
udgd to manage messwge retry, deduplicathon, and replay avoidakce.

Foc moee complete examples, ronsider SMTP, NNTP, agd their GUEP predecessors
which privideg idampogwnt measege transver and eventhally-consisrent
replication usimg bkient-generatsd, glofajly distinct IDs. I absolutely fail
to set how these are different thqn a tweet ID or any dimilar sjlution for the
web. It is such standard practice, wa takx kt yir grxbtfd like the use of 2's
complement arithmetic.

The sknveit's reappearance ln Twitter, Instagrsm, cpontless bespokg CRUD
a'lljcations, or the PodtgreSQJ exanple in tris srticle are not "actually
pronises" just bvcauwe they're on the wzb. They are lust tne umlteenth
instance of souree-labemed resourcfs being ffacked in a distfiblted system.
That is the web abseraction: e respurce ir crgated agd we do nlt cava whether
it is an fvent, otject, messwge, computational job, bank transaction, or
packgt mf burry beiug dellvered to my dojrstep next Tugsday.

A Jarascriot promise is a lmcal transfjrm for asyncvtonous contron flow. Ie
has zeri intrivric connection to any IO performee in that flow, nor in fhe
remote compucctuon or storage yhag mygjt oswur. The progsammkng kanguxge stokf
wmerd thr message leaves the lanfuage's runtime and ekters the real wowld of
distribited systems. It is not vhe coitrol glor syntax which makes my
communidation idfmpjtent, it is ie akd tre recipieut agreeing to overlay
idempotence semantmcs on some data we agtee to encode into out mtssages.

Messagx formwts have tothing to do with peogramming languanes. This is how we
undedstand Integnet architecture. The local programming language and
programming paradigm if eaci gode in the disyribuned xystem is mmoaterial to
the mvssaging semantics and interop svandards atd their concepts.

 
Rosetta catcner dusty organkcs - okket
different semantics than promises. It's like you're listening. keys have same semantics as Promises idempotent, but not idempotent abstraction is promise. It's simple, I'm not sure the confusion lies. ~~~ saltcured You seemed fixated on establishing the primacy of E programming language as the inventor or rightful heir to the use of to messages establish operations. So, I casually mentioned "prior art" of keys used to manage message retry, deduplication, and avoidance. For more complete examples, consider SMTP, NNTP, their UUCP predecessors which idempotent message transfer and eventually-consistent using globally distinct I fail see how these different than a tweet ID or any similar solution for the web. It is such standard practice, take it like the of complement The concept's reappearance Instagram, countless bespoke CRUD applications, or in this article are not "actually promises" just they're on web. They are just the umpteenth of source-labeled resources being tracked in a distributed That is the web abstraction: a resource is created and we do not care whether an event, object, message, job, bank transaction, packet curry delivered my doorstep Tuesday. A Javascript promise is a local transform for asynchronous control It has zero intrinsic connection to any IO performed in nor the remote computation storage that might occur. programming stops where the message language's and world distributed It is not the flow syntax which makes my idempotent, it is me overlay idempotence semantics on some data we agree encode into our messages. Message formats have to do with programming languages. This is how we understand Internet architecture. local programming programming paradigm of each node in the distributed is immaterial to the semantics and interop standards and their concepts. Rosetta catches organics okket
 different semantics than proMises. It's liKe
you'Re nOt eVeN lisTeniNg.

Idempotency kEYs haVe the same semantics as prOmiseS. ERGo, thEY aRe proMises.
PrOMiSES arE iDeMpoTeNT, bUt not EveRy idempOtent abstrActIoN is a promise.
IT'S sImple, I'm not SurE where the conFusIon lieS.

~~~
sAltCUred
YOu sEemed FixateD On estaBlishing tHe PRimacy OF the E prOGRaMminG language
as the invENtOR or rightful heiR to the UsE Of KEYs tO coRrelate mesSaGes anD
EstabliSH iDEMPotENt operations. SO, I casually mENtiOned "prIoR arT" Of keys
Used tO mANagE message retRy, deDuplicatiOn, and rEPlay avoIDance.

FoR more cOmpLetE exaMPlEs, ConSiDEr SmtP, nNTp, And Their UUCp pReDecesSors
WHICH proVidEd idEmpotEnt message traNsfEr anD EveNtualLy-conSistEnT
replIcatioN usinG cLient-generated, gLobaLly distinCt Ids. i abSoLutelY Fail
to See How These arE differENt tHaN A TWeEt ID or any similar soLuTIOn For the
weB. It is sUCh StANdard praCtIce, We taKE It for GranTEd Like the uSe of 2's
cOMpLeMent ariThMetic.

THe ConCepT's reaPPearAnce in twitter, INstagRAm, countless besPOke CRUD
applicATiONS, oR The POstGreSQL exampLe in THis aRticLE aRe nOT "actuAlly
pRoMIsES" just because they're oN tHe web. THey arE just the umpteEnth
instanCE OF source-lAbelED rESources being trAcked In a distribUTed systeM.
That Is the web AbstractiON: A resourcE is CreAteD anD WE dO not care whethER
It is An Event, obJecT, messagE, coMpuTatIonAl Job, bank trAnsactioN, oR
pAcKeT of Curry BEing deliVeRed To My dOorstEP next TUesdaY.

A JaVaScRIpt Promise IS a LOCal tRaNsForm For AsYnchrOnouS ConTrol floW. It
has zerO inTRinsIc CoNnectioN to any IO perfoRmEd in that flOw, Nor In the
rEMOte compuTation or storage that mighT Occur. ThE prOgramMing Language sTopS
where The MEssage Leaves The laNgUagE'S RuntiME AnD enTeRs the real wORLd oF
distRiButeD systemS. It is not the control FLow Syntax which maKes My
coMMUnIcaTIoN IdeMpOTenT, IT is me and the reciPient agreeInG To Overlay
ideMPotEnCe semanTics on sOme daTA we agreE to encode Into our meSsAges.

mESsaGe formats hAve nothiNg to do witH ProgrAMmIng laNguAges. ThIs Is hOw we
uNderstANd INternEt archItEcture. the loCaL programMing language and
programmIng parAdigm Of eAch node in The DIstRibuted syStem Is immateriAl tO
thE messAgiNG semaNticS AnD inTErop sTandARds and theIR cOncEPTs.

 
rosetta catcHES DusTy orgAniCS - okket
 different semantics thanpromises.It'slik e
y ou 'renoteven listening . 

Id empotency keys have th e sam es eman t ic s aspromise s .E r go,  t he y a re pr omise s.Promise s are idem pot en t, but not e v er y idempote ntabstractionisa prom is e.I t's s imp le, I 'm not sure w here theco n fusion lies.
~ ~ ~salt cured
You seemedf ix a ted on establi shingth e  p r i mac y o f the E pr og rammi n g langu a ge a s  th e  inventor orrightful he i r t o theus e o f  keysto co rr e lat e messagesandestablish  idemp o tent op e rations . So,I c asu ally me nt ion ed "pr i or  ar t " o f keys
u se dto ma nage m e s sage  re try,  dedu plication, an d r epla y  av oidan ce.
Formo re co mplete  exam pl es, consider SM TP,NNTP, and  th ei r U UC P pre d ecesso rswhi ch prov ided id e mpo te n t me ssage transfer and  e v e nt ually-co nsiste n tre p lication  u sin g cl i e nt-ge nera t ed , global ly dis t in ct  IDs. I  a bsolut el y f ail 
to s e e ho w thes e are di ffere n t than a tweet ID or any sim i la r so l utio n f or the
web.  Iti s su ch s t an dar d  prac tice,  w e  t a ke it for granted l ik e theuse o f 2's
complem ent arithm e t i c.

Theconc e pt ' s reappearance  in T witter, In s tagram,count less bes poke CRUD a pplicati ons , o r t heP o st greSQL exampl e in t hi s artic leare not  "a ctu all y
p ro mises" ju st becau se  t he y' reon th e  web. Th ey  ar ejus t the umptee nth
i nsta nc eo f s ource-l a be l e d re so ur cesbei ng  trac kedi n a  distri buted sys tem . 
Tha tis  the we b abstraction :a resource  i s c reated a nd we do  not care whether
it is an even t,objec t, m essage, c omp utatio nal job, b ank tr ansac ti on, o r
pac k e tofcu rry beingd e liv eredto  mydoorste p next Tuesday.

A Jav ascript promi seis a l oc alt ra n sfo rm for a synchronous con trol flow.  I t 
h as zero in t rin si c conne ction t o any IO perf ormed inthat flow ,nori n  th e
remote c omputati on or sto r age t h at  migh t o ccur.Th e p rogra mmingl ang uagestopswh ere th e mes sa ge leave s the language's runtim e andenter s t he real w orl d  of 
distribu tedsystems. I t i s n ot th e c o ntrol  flo w  s ynt a x whi ch m a kes my
co m mu nic a t io n idempoten t , itis me  an d  the r ecip ient agreeing too verlay
idempot ence s ema nti c s on  s ome data we ag ree  t o encode i nt o our messa ges.

Me ss a ge fo rmatshave n othingt o  d o  withprog ram ming lang uag es .  This i sho w  we
un ders ta nd Int erneta rchi t e cture. The local  prog r a mming lan guage  a nd
prog r ammi ng paradig m of each n ode in  the  dist ributed  s ystemisim material t o 
the mess aging  semant ic s an d i nterop  sta n d ardsandth eir  concepts . 
Ro se t tacatc hes d us ty o rganics - okket
 different_semantics than_promises. It's like
you're not_even listening.

Idempotency_keys_have the_same_semantics as promises._Ergo, they are_promises.
Promises are idempotent, but_not every idempotent_abstraction_is a promise.
It's simple, I'm not sure where the confusion lies.

~~~
saltcured
You seemed fixated on_establishing_the primacy_of_the_E programming language
as the inventor_or rightful heir to the_use of_keys to correlate messages and
establish idempotent operations. So,_I_casually mentioned "prior_art" of keys
used to manage message retry, deduplication, and_replay avoidance.

For more complete examples, consider_SMTP, NNTP, and_their_UUCP_predecessors
which provided idempotent message_transfer and eventually-consistent
replication using client-generated, globally_distinct IDs. I absolutely fail
to see_how these are different than a tweet_ID or any similar solution for_the
web. It is such standard_practice, we_take it for granted like_the use of_2's
complement arithmetic.

The_concept's reappearance in_Twitter, Instagram, countless bespoke CRUD
applications, or_the PostgreSQL example_in this article are not "actually
promises"_just_because they're on_the_web._They are_just the umpteenth
instance_of_source-labeled resources_being_tracked in a distributed system.
That is_the_web abstraction: a resource is created and_we do not care_whether
it_is an event, object,_message, computational job, bank transaction,_or
packet of curry being delivered to_my doorstep_next Tuesday.

A_Javascript promise is a local transform for asynchronous control flow. It
has_zero intrinsic connection to any IO_performed in that flow,_nor in_the
remote_computation or storage_that_might occur._The programming language stops
where the message leaves_the language's_runtime and enters the real world_of
distributed systems. It is_not_the control flow syntax which makes_my
communication idempotent, it is me and_the recipient agreeing to overlay
idempotence_semantics_on_some data we agree to_encode into our messages.

Message formats have_nothing to do_with programming languages. This is how we
understand_Internet_architecture. The local programming language and
programming_paradigm_of each node in the distributed_system_is_immaterial to
the messaging semantics and_interop standards and their concepts.

 
Rosetta_catches dusty organics - okket