Ịma ọkwa Push bụ ngwa ahịa dị mkpa maka onye ọ bụla nwere ngwa mkpanaka.
Ọ bụ ụzọ kacha mma iji soro ndị ọrụ gị kparịta ụka, na-eziga ozi ngwa ngwa na ekwentị mkpanaaka ha.
Ngwa mkpanaaka nwere ike izipu onye ọrụ ọkwa ntanye, nke bụ ozi mmapụta dị nkenke na-egosi na ekwentị ha ọbụlagodi mgbe emegheghị ngwa ahụ.
Ngosipụta ndị a nwere ike ịgụnye ncheta, mmelite, mbelata, na ndị ọzọ.
E kere ha ka ha jide anya ndị ọrụ. Aha, ozi, foto na URL bụ ihe niile nwere ike ime nke ngosi ngosi. Emojis, akara ngosi, na ihe ndị ọzọ nwekwara ike ịbụ akụkụ nke ha.
Sistemụ arụmọrụ dị ka Apple OS na Google Android nwere oghere dị iche iche maka ọkwa mkpọsa.
Enwere ike iji ọkwa ntanye iji kwalite njikọ aka, kwalite ojiji ngwa, metụ mgbanwe, na ọtụtụ ndị ọzọ.
Nhọrọ ndị a enweghị oke.
Mgbasa ozi maka ngwaọrụ mkpanaka, nke a makwaara dị ka ọkwa ntinye maka ngwaọrụ mkpanaka, nwere ike ịgbakwunye ọwa gị dị ka email, SMS na ọkwa ntanetị n'ọtụtụ uru pụrụ iche.
Ị ga-enweta nkọwa ngwa ngwa nke ọrụ ngosi na post a yana ozi gbasara ebumnobi ya, nhazi ọkwa dị elu, atụmatụ pụrụ iche, na ndị ọzọ.
nzube
Iji wulite ọrụ ngosi nke nwere ike kesaa ozi ngwaahịa na onye ọrụ nke ọma n'ofe ọwa dị iche iche
chọrọ:
- API izipu: Bipụta ebe njedebe enyere ikike ka azụ azụ na microservice ọ bụla nwee ike ịmalite izipu ọkwa.
- Ọwa dakọtara: Kwado ịnye ọkwa na ọwa ọ bụla na-ebipụta API, dị ka email, ozi ederede na ntinye.
- Mmasị onye ọrụ: Nye ndị ọrụ ohere ịhọrọ mmasị onye ọrụ maka ọwa na ọkwa ọ bụla.
- Oke maka nnabata ọrụ mgbada: Zenarị ịnweta nke gị email ma ọ bụ SMS kwụsịrị ma ọ bụ kwụsị.
- Enwere ike ịgbakọ: Kwepu (n'usoro usoro) nha nha na-enweghị ngwụcha.
Architecture dị elu
Ka anyị kwuo na koodu gị kwesịrị ịgwa mmadụ:
- A na-akpọ akara njedebe POST / izipu site na koodu gị. Maka ọwa ọ bụla dị, arịrịọ a gụnyere njirimara njirimara nke onye nnata, ụdị ngosi, yana ọdịnaya ya.
- A na-eji Flow nzere ndị ahịa OAuth2 site na / zipu njedebe iji gosipụta arịrịọ ahụ.
- A na-arịọzi nhọrọ ngosi onye ọrụ site na nchekwa data. Mmasị ahụ na-egosi ma onye ọrụ e debanyere aha na ọwa ụfọdụ yana ọkwa ma ọ bụ na ọ denyeghị ya.
- Site na nchekwa data, ọ ga-agụ njirimara onye ọrụ dị ka adreesị ozi-e na nọmba ekwentị.
- Ebe njedebe a ga-emepụta ihe ozi na-agụnye njirimara onye ọrụ, ọwa, na ọdịnaya nke ọwa. Ọ gaghị agụnye ọwa agbanyụrụ, n'agbanyeghị. A na-ezisa ozi ahụ n'aka onye ọrụ na-apụ apụ.
- A na-ekesa ozi mbata na ahịrị ọrụ site na ọrụ fanout. Nzacha dị, n'agbanyeghị, ileghara ahịrị ọrụ anya maka ọwa na-akọwapụtaghị na ozi ahụ.
- Ọwa ọ bụla nwere ihe nrụpụta na kwụ n'ahịrị ọrụ. Onye nhazi ahụ na-arụ ọrụ ahụ wee rịọ maka ọrụ kwesịrị ekwesị, dị ka email azụmahịa ma ọ bụ ọrụ SMS.
Isi ihe owuwu ihe owuwu
POST/ezigara
O nwere ike ịbụ na ị chọpụtala na ọ bụ naanị userId na ọbụghị adreesị ozi-e ma ọ bụ akara ekwentị etinyere n'arịrịọ nke njedebe a. Nke a na-enyere ndị ọrụ ngosi aka ịnọ na-amaghị aha ndị ọrụ gị.
Iji hụ na scalability, a na-etinye ebe njedebe n'azụ a ibu balancer.
Nnwale ihu onye ọrụ gị na-ahụkarị anaghị enye nchebe maka njedebe njedebe.
Ị ga-ejirịrị usoro nyocha pụrụ iche mara dị ka OAuth2 Client Client Flow eji maka nzikọrịta ozi-na-sava ebe ọ bụ na ọrụ na-enyefe arịrịọ ahụ bụ ngwanro n'onwe ya.
Ngwa gị ga-enye ọkwa n'ọtụtụ ebe dị iche iche. Ị nwere ike iji ọrụ izipu ihe fọrọ nke nta ka ọ bụrụ ebe ọ bụla, dị ka site na codebase ọhụrụ ma ọ bụ ịmepụta ọrụ gị, site na imejuputa ya dị ka njedebe njedebe n'azụ ihe nkwụnye ibu, nke na-ekwe nkwa na ọ nwere ike ịgbatị onwe ya.
PUT/mmasị onye ọrụ
Jiri ụzọ igodo/uru uru ma ọ bụ NoSQL nchekwa data nwere ike ịkacha oke. Hazie ndekọ ahụ ka otu a: KEY: sample user id: sample notification id, Uru: [“email”, “state: true,” “SMS”, “state: false,” channel: “email”, “email”, state : eziokwu")
Ọ bụrụ na ụkpụrụ "ụgha" dị na ndekọ ahụ, njedebe njedebe ga-ewepụ ọwa kwekọrọ na ozi ezigara ndị fanout. Ọ bụrụ na enweghị ndekọ maka ọwa, onye ọrụ egosibeghị mmasị ha. Ị ga-ekwenyerịrị na ndabara na ọnọdụ a.
Onye ọrụ nwere ike gbanwee data dị na nchekwa data mmasị onye ọrụ site na iji UI gị yana ebe njedebe oge niile nke ejiri usoro njirimara ọkọlọtọ gị chekwaa.
Ndị ọrụ ga-ewe iwe ma ga-amanye ịkọwa ọkwa gị dị ka spam ma ọ bụ mechie ha ma ọ bụrụ na ị nyeghị ha nhọrọ ịgbanwe mmasị ngosi ha. A ga-emerụ ahụmịhe onye ọrụ gị ọzọ n'ihi nke a, yana email ma ọ bụ ọrụ nnyefe SMS nwere ike kwụsịtụ akaụntụ gị.
Onye ofufe pụọ
Fanout na-eṅomi ozi wee kesaa ya na ebe dị iche iche. Ha dị ọnụ ala ma nwee ike ịgbatị. Jiri SNS na AWS. Jiri Pub/Sub na Azure yana isiokwu na ndenye aha na Google Cloud Platform.
Iji gbochie izipu ozi na-enweghị isi na ahịrị ọrụ ọwa ewepụrụ, ị nwere ike hazie nzacha n'etiti fanout na ahịrị ọrụ. Dịka ọmụmaatụ, na AWS SNS, ị nwere ike ịkọwapụta na ahịrị ọrụ email kwesịrị ịnweta ozi fanout naanị ma ọ bụrụ na ọ nwere uru "email" na mpaghara "ọwa".
Ọbụlagodi na ị nwere ike ịmepụta koodu iji zipu otu ozi ahụ na ahịrị ọrụ achọrọ, fanout na-arụ ọrụ nke ọma yana achọrọ obere koodu. Fanout na-enyekwa mma nke ịgbakwunye na iwepu ahịrị, na-enye gị ohere ịgbatị na hazie ọwa gị.
Nhazi ọrụ
A na-echekwa ozi na kwụ n'ahịrị na-echere nhazi site n'aka ndị nhazi ọrụ gị. Ha dịkwa ọnụ ala ma nwee oke ọnụ. Ndị na-arụ ọrụ bụ ibe koodu na-ahazi ozi sitere na ahịrị ọrụ. Dabere na olu ozi dị na kwụ n'ahịrị, ha nwere ike itolite.
Onye nrụpụta ọrụ kwesịrị ịkpọ oku API gaa na onye na-eweta ọrụ kwesịrị ekwesị iji wepụta ọkwa ahụ na ọnọdụ anyị site na ọrụ email azụmahịa.
Ọtụtụ ndị na-eweta ozi email, SMS na ndị yiri ya nwere ihe siri ike maka ọnụọgụ na caliber nke ozi ị na-eziga. Ọzọkwa, ịchọrọ inyocha ihe ndị a wee guzobe usoro dabara adaba nke ọma. Nke a bụ ndụmọdụ anyị ka anyị ga-esi zere akwụsị na AWS SES.
Ị nwere ike ịkọwa ọnụ ọgụgụ kachasị nke ndị na-arụ ọrụ iji gbochie ịfefe oke ọnụ ahịa ọrụ nnyefe.
Ọzọkwa Ndozi
Ị nwere ike ileba anya na ụyọkọ ihe ndị a.
- Ha chọrọ API nke ha, tebụl, wdg. ka ha wee nwee ọrụ ngosi n'ime ngwa nwere ike itolite.
- Ịchịkọta na igosi akụkọ mepere emepe/pịa
- Iwepu ọdịnaya nke ngosi na koodu ahụ na ikwe ka ngwaahịa gị na ndị otu imewe gbanwee ọkwa ahụ n'anya kama na-enweghị mgbanwe koodu.
- Na-agbanweghị koodu ọ bụla, otu gị nwere ike iji dashboard rụọ ọrụ ma ọ bụ gbanyụọ ngosi maka ụfọdụ ọwa.
Uru nke ngosi Push
- Mmekọrịta Onye ọrụ kwalite: Mmelite na ihe ọhụrụ ga-eme ka ndị ọrụ gị nwee mmasị.
- Nweta nkwalite nzikọrịta ozi: Gbaa mbọ hụ na enwetara ozi gị ozugbo, ọbụlagodi mgbe ndị mmadụ anaghị arụ ọrụ. Zipu ọkwa ngwa ngwa ma nye ndị ọrụ ahụmịhe dị nro.
- Jido Njide: Jiri ọkwa ntanye a na-ahụ anya nke ọma iji gbaa ndị ọrụ gị ume ịlaghachi. Ị nwere ike ịbawanye njide onye ọrụ wee belata ọgbaghara site na ịkwanye ndị ahịa azụ na webụsaịtị na ngwa gị.
- Melite mgbanwe: Site n'ịmepụta mkpọsa mkpọsa gburugburu ihe nrite in-app, nkwalite, mbelata, ma ọ bụ onyinye ndị ọzọ, ị nwere ike ịbawanye ahịa.
- Hazie ụlọ ọrụ gị: Usoro nzikọrịta ozi gị ga-abawanye ka ndị na-ege gị ntị na-agbasa. Ka ntọala ndị ahịa gị na-agbasawanye, ọkwa mgbasa ozi bụ ụzọ dị irè iji nọrọ na kọntaktị ha.
- Mee ka ahụmịhe onye ọrụ jikọọ (UX): Site n'inye ndị na-azụ ahịa ihe ngosi azụmahịa iji mee ka ha mara ma nye ahụmịhe ọwa dị larịị, ị nwere ike belata esemokwu n'oge njem ndị ahịa.
mmechi
Na mmechi, anyị nwetara ihe ọmụma banyere ihe owuwu nke ọrụ ngosi scalable. Anyị lebakwara anya na ngwaọrụ ndị isi ọrụ igwe ojii niile na-enye ka ị nwee ike dabere na ọkwa gị na ndị a.
N'agbanyeghị na agbalịrị m ike m iji nye gị nkọwapụta nke usoro nhazi ọkwa ọkwa, enwere ọtụtụ ihe na-eme n'azụ ihe nkiri.
Enwere m olileanya na ị ga-ahụ na ozi a bara uru ma tinye ya nke ọma.
Nkume a-aza