タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

アーキテクチャとCQRSに関するJGEEMのブックマーク (3)

  • CQRSの一貫性・可用性・スケーラビリティについて|かとじゅん(j5ik2o)

    CQRS(Command Query Responsibility Segregation、コマンド・クエリー責任分離)は、現代のアプリケーション設計において重要な役割を果たしているが、今回はよく議論になる一貫性・可用性・スケーラビリティについて書いてみよう。文章のみの説明なので、非常にイメージしづらいかもしれないけど。 一貫性と可用性の評価軸CQRSが一貫性と可用性を重要な評価軸として採用する理由は、CAP定理に基づいている。分散システムでは、ネットワークの分断や障害が発生した場合、一貫性と可用性の間でトレードオフが生じることが避けられない。CQRSはこのトレードオフを巧みに活用し、書き込みモデルで一貫性を、読み込みモデルで可用性を重視することで、最適なバランスを見つけることを目指している。 一貫性への影響イベントソーシングを伴わないシンプルなCQRSでは、非CQRSベースのシステムと同

    CQRSの一貫性・可用性・スケーラビリティについて|かとじゅん(j5ik2o)
  • CQRSのコストとトレードオフについて|かとじゅん(j5ik2o)

    どんな強力なツールでもそうであるように、CQRS(Command Query Responsibility Segregation)は無料で使えるわけではない。CQRSにはコスト(手間という意味)が伴うが、その利点も多い。 従来のアーキテクチャより複雑だと批判されることもあるCQRS/ES(Event Sourcing)だが、実際にはシンプルに実装できる部分もある。 CQRSにおけるモデルの分割CQRSではシステムを分割し、書き込みモデルと読み込みモデルを独立させる。例えば、ホテルの部屋を予約するシステムを考えると、部屋を予約する・宿泊人数を変更する・予約をキャンセルするなどの行為は書き込みモデル(集約ルート)に該当し、顧客別予約・ホテル別予約などの情報は読み込みモデルになる。この分割により、各オブジェクトはより単純化されるが、システム全体としての複雑さは増す。これは、CQRSにおける重要

    CQRSのコストとトレードオフについて|かとじゅん(j5ik2o)
  • アーキテクチャの進化はドメインイベントが起点になる - KAKEHASHI Tech Blog

    こちらの記事はカケハシ Advent Calendar 2023 Part2の24日目の記事になります。 adventar.org はじめに 反復的な開発は、変更容易性の高いソフトウェアが不可欠です。ソフトウェア開発の経験がある方なら、デリバリ後の洞察や市場環境の変化から、新しい機能の追加やアーキテクチャの進化の必要性に直面したことが一度はあるでしょう。 私自身、要求分析手法やSOLID原則等の技法を取り入れ、変更容易性に対応する多くのプロジェクトに参加しました。しかし、どれだけ優れた手法や技法を持っていても、変更が難しい要求が出てくることは避けられません。その際、「過去の出来事」を正確に記録していれば、後から見返して問題解決が容易だったと感じることがよくあります。 ドメイン駆動設計(DDD)では、「過去に起こった出来事」を表現するドメインモデルを「ドメインイベント」と呼びます。変更容易性

    アーキテクチャの進化はドメインイベントが起点になる - KAKEHASHI Tech Blog
    JGEEM
    JGEEM 2023/12/25
    ちょうど悩んでるところだったので非常に助かる。感謝。とりあえず熟読しつつチームにも布教しよう。今年のアドベントカレンダーはDDD関連が豊作で嬉しい
  • 1