Upgrade to Pro — share decks privately, control downloads, hide ads and more …

事業のスケールアウトを支える PHPで作る分散アーキテクチャ

yuuki takezawa
December 11, 2020

事業のスケールアウトを支える PHPで作る分散アーキテクチャ

事業の成長と、それにともなうアプリケーションの課題、
発生しがちな問題を追いながら、
解決策の一つであるCQRS導入について解説します。
分散システムで発生する問題についても軽く触れていきます。

yuuki takezawa

December 11, 2020
Tweet

More Decks by yuuki takezawa

Other Decks in Technology

Transcript

  1. Pro f i le • ஛ᖒ ༗و / ytake •

    ελʔϑΣεςΟόϧגࣜձࣾ • PHP, Hack, Go, Scala • Apache Hadoop, Apache Spark, Apache Kafka 
 • twitter https://twitter.com/ex_takezawa • facebook https://www.facebook.com/yuuki.takezawa • github https://github.com/ytake
  2. ΞϓϦέʔγϣϯͱσʔλϕʔε • SELECT * FROM articles; 
 SELECT * FROM

    users WHERE user_id = ?; 
 • ͜Ε͕΋͠10000݅औಘͰ 
 ൃߦ͞Ε͍ͯͨΒʁ 
 • ORM͕ѱ͍ͷͰ͸ͳ͘ 
 ద੾ʹར༻Ͱ͖͍ͯͳ͍έʔε
  3. public function run(): \Generato r { foreach ($repository->findAll() as $row)

    { yield new ReadProductTransfer ( $row , $this->kitchenRepository->find($row->getId()) , $this->areaRepository->find($row->getId() ) ) ; } }
  4. ॻ͖ࠐΈͱಡΈࠐΈͷҧ͍ ॻ͖ࠐΈ ಡΈࠐΈ Ұ؏ੑɾՄ༻ੑ τϥϯβΫγϣϯΛ༻ ͍ͯॻ͖ࠐΈΛߦ͏ Ұ؏ੑॏࢹ ݁Ռ੔߹ੑͱՄ༻ੑ σʔλ ਖ਼نԽ

    ඇਖ਼نԽ εέʔϥϏϦςΟ Ұൠతʹ εέʔϥϏϦςΟ͸ 
 ॏཁͰ͸ͳ͍ ଟ͘ൺॏΛ઎Ί͓ͯΓ 
 εέʔϥϏϦςΟ͸ ॏཁ
  5. ྫ֎ • Debezium • DynamoDB streams • LinkedIn Databus 


    
 ͳͲ͸ॻ͖ࠐΈΛݕ஌ͯ͠௨஌Մೳ