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

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

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

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

Avatar for yuuki takezawa

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 


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