並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 35 件 / 35件

新着順 人気順

cqrsパターンの検索結果1 - 35 件 / 35件

  • クリーンアーキテクチャ完全に理解した

    clean_architecture.md 2020/5/31追記: 自分用のメモに書いていたつもりだったのですが、たくさんのスターを頂けてとても嬉しいです。 と同時に、書きかけで中途半端な状態のドキュメントをご覧いただくことになっており、大変心苦しく思っています。 このドキュメントを完成させるために、今後以下のような更新を予定しています。 TODO部分を埋める 書籍を基にした理論・原則パートと、実装例パートを分割 現在は4層のレイヤそれぞれごとに原則の確認→実装時の課題リスト→実装例という構成ですが、同じリポジトリへの言及箇所がバラバラになってしまう問題がありました。更新後は、実装時の課題リストを全て洗い出した後にまとめて実装を確認する構成とする予定です。 2021/1/22追記: パートの分割と、クリーンアーキテクチャという概念の定義について追記を行いました。大部分の実装例パートを中心

      クリーンアーキテクチャ完全に理解した
    • マイクロサービス設計原則: SOLIDではなくIDEALS

      キーポイント For object-oriented design we follow the SOLID principles. For microservice design we propose developers follow the “IDEALS”: interface segregation, deployability (is on you), event-driven, availability over consistency, loose-coupling, and single responsibility. Interface segregation tells us that different types of clients (e.g., mobile apps, web apps, CLI programs) should be able to inte

        マイクロサービス設計原則: SOLIDではなくIDEALS
      • 【第1回・前編】 エンジニア和田卓人の今を形作る技術 | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

        『テスト駆動開発』や『SQLアンチパターン』をはじめとする技術書の翻訳者、さまざまなIT企業をわたり歩く技術顧問、さらに最近ではエンジニアリング文化を伝える講演者としても活躍されている和田卓人さん(https://twitter.com/t_wada)。 そのソフトウェアエンジニアとしての素顔を株式会社一休CTOの伊藤直也さん(https://twitter.com/naoya_ito)が聞き出す対談の前編では、一線を画すエンジニアであり続けるために自らのプロジェクトで意識的にコードを書いているという和田さんの姿勢に始まり、ベテランとして「技術のらせん」を読み解くケーススタディとしてDDD(Domain-Driven Design)を題材に話を伺います。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務め

        • フロントエンドエンジニアが「自分はJSON色付け係」と自虐する理由を考察した - パンダのプログラミングブログ

          「JSON色付け係」という自虐 フロントエンドエンジニアの間では、「私の仕事は JSON に色を付けることです」という有名な自虐ネタがある。 おそらく初出は以下のツイートなのだろう(*1)。ただ、出典はあまり詳しく調べていない。 初めてこの言葉を見た時、面白い言い回しだなと思った。確かにフロントエンドの仕事にそういう側面はある。 実際、コンテンツの表示がメインのページで作業すると上記のような気持ちになる。この場合、フロントでやることといえばせいぜい日付の表示形式を適切にフォーマットするくらいだ。結局バックエンドからデータが返ってこないとフロントだけでは何もできないと思うこともある。 もちろん、フロントだけで簡潔する手書き風グラフ作成ツール excalidraw のようなものは別だし、フロントで複雑な状態を扱う部分を書いたり、フォームを使ってユーザー入力を受け付け、入力値を検証するバリデーシ

            フロントエンドエンジニアが「自分はJSON色付け係」と自虐する理由を考察した - パンダのプログラミングブログ
          • 【15分で確認】AWSでクラウド設計する時に覚えておきたい設計原則・アーキテクチャ3選 - Qiita

            何となくAWSでクラウド設計をしていませんか AWSを利用する際、多くの方が「設計」というプロセスを簡単に飛ばしてしまう傾向にあります。しかし、クラウド環境の効果的な活用には、適切なアーキテクチャ設計が不可欠です。世の中には、システム設計をする上で指針となる設計原則がいくつかあります。本記事では、以下の3つをピックアップをしてご紹介します。 本記事で取り扱う内容 ■ マイクロサービスアーキテクチャ ■ AWS Well-Architected Framework ■ The Twelve-Factor App 1. マイクロサービスアーキテクチャ マイクロサービスは、独立した小さなサービス群でソフトウェアを構築するアーキテクチャです。これにより、迅速なイノベーションと新機能の迅速な展開が可能となります。一方、モノリシックアーキテクチャは、全てが一つのサービスとして結合され、変更や障害が全体

              【15分で確認】AWSでクラウド設計する時に覚えておきたい設計原則・アーキテクチャ3選 - Qiita
            • アーキテクチャの進化はドメインイベントが起点になる - KAKEHASHI Tech Blog

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

                アーキテクチャの進化はドメインイベントが起点になる - KAKEHASHI Tech Blog
              • サーバーレスマイクロサービスを構築するための設計アプローチの比較 | Amazon Web Services

                Amazon Web Services ブログ サーバーレスマイクロサービスを構築するための設計アプローチの比較 AWS Lambda でワークロードを設計すると、コードレベルでもインフラレベルでも表現できるモジュール性のために、開発者に疑問が生じます。また、コードを実行するためにサーバーレスを使用するには、基盤となる機能コンポーネントからビジネスロジックを抽出するためのさらなる検討が必要です。この意図的な関心の分離により、堅牢なモジュール性が保証され、進化的なアーキテクチャへの道が開かれます。 この投稿は同期ワークロードに焦点を当てていますが、他のワークロードのタイプでも同様の考慮が当てはまります。API の境界を特定し、コンシューマと API について擦り合わせた後、その境界と関連するアーキテクチャを構成します。 Lambda 関数を使用して API を構成する最も一般的な 2 つの方

                  サーバーレスマイクロサービスを構築するための設計アプローチの比較 | Amazon Web Services
                • DynamoDBの難しさについて - Qiita

                  はじめに DynamoDBは上手く使えば非常に強力なDBMSですがRDBとの違いは大きく、「RDBの代わりにDynamoDBを使おう!」と深く考えずに提案/採用することが難しいことから、その理由についてみていきます。 DynaomoDBの難しさ DynamoDBの利点と表裏一体である、DynaomDBの主要な難しさについて順番に見ていきます。 1. 提供されているクエリモデルでできることが非常に限定されている DynamoDBは次の公式サイトに記載がある通り、どんな規模でも数msの一定のパフォーマンスを発揮でき、無尽蔵にスケールできるという特徴があります。 Fast, flexible NoSQL database service for single-digit millisecond performance at any scale この特性を上手く活用すると次の実例のように高可用性、

                    DynamoDBの難しさについて - Qiita
                  • モノリスからマイクロサービスへ-ZOZOBASEを支える発送システムリプレイスの取り組み - ZOZO TECH BLOG

                    はじめに こんにちは。基幹システム本部・物流開発部の岡本です。普段はZOZO基幹システムのリプレイスを担当しています。 ZOZOではさらなる成長のため、様々なリプレイスプロジェクトが進行しており、これまでにZOZOTOWNやWEARなどのプロダクトにおける多くのリプレイス事例を公開してきました。本記事では、2022年8月より本格始動したZOZO基幹システムリプレイスの第一弾であるZOZOの物流拠点「ZOZOBASE」を支える「発送システムリプレイス」を紹介します。「発送システムリプレイス」は設計を終えた開発段階で、リリースに向けて進行中です。本記事を皮切りに今後も継続的に発信を続けていくので、是非ご注目ください。 現状の「発送システム」は、Classic ASPのトランザクションスクリプトで実装された大規模なモノリス構成のシステムの一部であり、「障害リスク」と「開発速度の低下」に課題を抱え

                      モノリスからマイクロサービスへ-ZOZOBASEを支える発送システムリプレイスの取り組み - ZOZO TECH BLOG
                    • マイクロサービスのための分散データ 〜 イベントソーシング vs チェンジデータキャプチャ - 赤帽エンジニアブログ

                      インテグレーションのためのミドルウェア製品のテクニカルサポートを担当している山下です。 今回は レッドハットのシニアアーキテクトである Eric Murphy さんによる「マイクロサービスのための分散データ 〜 イベントソーシング vs チェンジデータキャプチャ(CDC)」の翻訳記事です。この記事では、イベントソーシング、CDC、CDC + Outboxパターン、CQRSをそれぞれ簡単に説明しながら、それらの特性の違いを比較します。また、イベントソーシングとCQRSの簡易な説明がなされている他、あまり明確に語られることが少ないもののソフトウェアの設計に大きな影響をおよぼすドメインイベントとチェンジイベントの違いにも触れられています。 [原文] Distributed Data for Microservices — Event Sourcing vs. Change Data Captur

                        マイクロサービスのための分散データ 〜 イベントソーシング vs チェンジデータキャプチャ - 赤帽エンジニアブログ
                      • ZOZOSUITからZOZOMATへ - CQRSによる解決アプローチ - ZOZO TECH BLOG

                        はじめに こんにちは、計測プラットフォーム部バックエンドチーム、テックリードの児島(@cozima0210)です。この記事では、ZOZOSUITとZOZOMATの違いにより生じたバックエンド開発における課題と、その解決のためにCQRSアーキテクチャを採用した経緯、そしてその実践について紹介します。 ZOZOSUITとは ZOZOSUITは、2017年に発表した全身の計測を目的としたツールです。現在も計測機能は提供されていますが、新規の販売は終了しています。現在、ZOZOSUITの計測データは、マルチサイズ商品の開発に活かされています。 ZOZOMATとは ZOZOMATは、2019年に発表した足の計測を目的としたツールです。足の計測データから、足型診断や推奨サイズの提案に活用されています。今年の2月にリリースし、ZOZOSUITに続く計測技術として、とても注目をいただきました。 計測プラッ

                          ZOZOSUITからZOZOMATへ - CQRSによる解決アプローチ - ZOZO TECH BLOG
                        • CQRS設計パターンをモダナイズする

                          CQRSとは CQRS(Command Query Responsibility Segregation、コマンド・クエリ責務分離)は、ソフトウェアアーキテクチャパターンの一つで、つまりシステムのコマンド部分をクエリ部分から分離します。基本的な考え方は、データの書き込み操作(コマンド)と読み取り操作(クエリ)を異なるモデルで扱うことです。これにより、スケーラビリティ/パフォーマンス/セキュリティの観点で柔軟な設計が可能となり、クエリ要件に合わせて最適化が実現できます。 CQRSの基本構成としては、 コマンドモデル(書き込みモデル):データの作成、更新、削除といった書き込み操作を担当します。このモデルは、データの整合性と一貫性を確保するために最適化されています。 クエリモデル(読み取りモデル):データの読み取り操作を担当します。このモデルは、クエリのパフォーマンスを最大化するために最適化され

                            CQRS設計パターンをモダナイズする
                          • DynamoDBによるOutboxパターンとCDCを用いたCQRSアーキテクチャの実装〜ZOZOMOでの取り組み - ZOZO TECH BLOG

                            こんにちは。ブランドソリューション開発部プロダクト開発ブロックの岡元です。普段はFulfillment by ZOZOとZOZOMOのブランド実店舗の在庫確認・在庫取り置きサービスの開発、保守をしています。 本記事では、ブランド実店舗の在庫確認・在庫取り置きサービスで実装したCQRSアーキテクチャについて紹介させていただきます。 CQRSの実装においては、データベース(以下、DB)分割まで行い、コマンド側DBにはAmazon DynamoDB(以下、DynamoDB)、クエリ側DBにはAmazon Aurora MySQL(以下、Aurora MySQL)を用いています。また、コマンド側DBとクエリ側DBの橋渡しを担うメッセージングにおいてはOutboxパターンと変更データキャプチャを用いました。DBとメッセージングシステムへの二重書き込みを避けることで障害などのタイミングで顕在化する潜在

                              DynamoDBによるOutboxパターンとCDCを用いたCQRSアーキテクチャの実装〜ZOZOMOでの取り組み - ZOZO TECH BLOG
                            • ドメイン駆動設計入門【DDDをわかりやすく解説】 | 楽水

                              突然ですが、エンジニアの皆さま、Javaで開発したWebアプリケーションの構成、このようになっていませんか? データとgetter/setterだけのオブジェクト(JavaBean) 画面のコントロールやビジネスロジックの処理はServletが行う データベースのアクセスは、DAO(Data Access Object)に任せる もしそうであれば、そのシステム、ドメインモデル貧血症に陥ってます。 これは、データとgetter/setterだけのオブジェクトを、Anemic(貧血症になって元気がない)オブジェクトと称し、オブジェクトとはいうものの実質的にはデータであり、それをやりとりするだけの手続き型システムなっていることを嘆いたものです。 今回は、本来のオブジェクト指向に立ち返り、そのメリットである高い保守性、再利用性、拡張性を備えた変化に強いシステムを作るための設計方法、ドメイン駆動設計

                              • AWS モダンアプリケーション開発

                                AWS モダンアプリケーション開発 AWS におけるクラウドネイティブ モダンアプリケーション開発と設計パターン 2019 年 10 月 注意 お客様は、この文書に記載されている情報を独自に評価する責任を負うものとします。 本書は、(a) 情報提供のみを目的としており、(b) AWS の現行製品とプラクティスを 表しますが、予告なしに変更されることがあり、(c) AWS およびその関連会社、サプ ライヤーまたはライセンサーからの契約義務や確約を意味するものではありません。 AWS の製品やサービスは、明示または暗示を問わず、いかなる保証、表明、条件を 伴うことなく「現状のまま」提供されます。お客様に対する AWS の責任は、AWS 契約により規定されます。本書は、AWS とお客様の間で行われるいかなる契約の一部 でもなく、そのような契約の内容を変更するものでもありません。 © 2019 A

                                • 【レポート】クラウドネイティブなモダンアプリケーション開発を始めよう!クラウドネイティブ設計とデプロイメントパターン #AWSSummit | DevelopersIO

                                  【レポート】クラウドネイティブなモダンアプリケーション開発を始めよう!クラウドネイティブ設計とデプロイメントパターン #AWSSummit こんにちは、佐伯です。 AWS Summit Tokyo 2019 Day3に行われたセッション「クラウドネイティブなモダンアプリケーション開発を始めよう!クラウドネイティブ設計とデプロイメントパターン」のレポートを書きましたのでご覧頂ければと思います。 セッション概要 オンプレミスのシステムを単純にクラウドへ移行するだけではクラウドの様々なメリットを享受することはできません。このセッションではクラウドネイティブなモダンアプリケーションの開発について、AWSの各種サービスをアプリケーションブロックとして利用するアプリケーション構成やAWSの各種サービスを利用したCI/CDの実現についてアーキテクトやデベロッパーの観点で解説します。 セッションレポート

                                    【レポート】クラウドネイティブなモダンアプリケーション開発を始めよう!クラウドネイティブ設計とデプロイメントパターン #AWSSummit | DevelopersIO
                                  • Amazon DynamoDB を使った CQRS イベントストアの構築 | Amazon Web Services

                                    Amazon Web Services ブログ Amazon DynamoDB を使った CQRS イベントストアの構築 コマンドクエリ責務分離(command query responsibility segregation, CQRS)パターンは、もともとコマンドクエリ分離の原則から導出されたもので、ドメイン駆動設計コミュニティの啓蒙によって広く知られるようになったものです。イベントソーシングを使用した CQRS アーキテクチャは、イベントストア と呼ばれる追加のみを許されたログに、作成されたイベントを保存します。イベントソーシングを利用することによっていろいろなメリットがありますが、中でも次のようなことができるようになります: データベースとメッセージブローカーを跨ぐような複雑な分散トランザクション(いわゆる 二相コミットプロトコルによるトランザクション)を用いなくてもデータベースの

                                      Amazon DynamoDB を使った CQRS イベントストアの構築 | Amazon Web Services
                                    • ドメインイベントを伝達するためのモデリング技法 - KAKEHASHI Tech Blog

                                      前回は、アーキテクチャの進化はドメインイベントが起点になるという記事内で、ドメインイベントの重要性を語りました。本稿では、ドメインイベントを伝達する際にシステム要件を満たした上で、どのようにしてデータモデル並びにドメインモデルを象るかを説明します。 なお、ビジネスドメインを深掘りドメインモデルを探索する手法の説明は、世にたくさん解説されているため詳しくはそちらに譲ります。特にAlberto Brandolini氏が提唱するモデリング手法であるEvent Stormingは、ワークショップ形式でドメインイベントを深く理解し、一連の業務プロセスやドメイン領域を探索的に発見することができる手法であり、Event Sourcingを前提とするアーキテクチャと相性がいいので参考にするとよいでしょう。 ドメインイベントのデータモデルの属性 ドメインイベントの記録および伝達に着眼した構成を紹介した前回の

                                        ドメインイベントを伝達するためのモデリング技法 - KAKEHASHI Tech Blog
                                      • ドメイン駆動設計 × Spring Boot(Kotlin)で新規事業クラウドリンクスを運営している話 - クラウドワークス エンジニアブログ

                                        はじめに 初めまして、クラウドワークスの新規事業エンジニアのせきと申します。2019年9月に新規事業クラウドリンクス(CrowdLinks)の開発チームにジョインし、サービスの立ち上げ段階から参画してきました。 現在クラウドリンクスは「Nuxt.js × Spring Boot(Kotlin)」という構成でサービスを運営しています。 この記事では、クラウドリンクスの技術選定の経緯と感想を紹介したいと思います。 新規事業の技術選定に興味がある、または今まさに技術選定をしている方 ドメイン駆動設計などの設計思想に興味を持つ方 新規事業の開発に関わっている方、または関わりたいと思っている方 こんな方々のご参考になれば嬉しいです! 目次 背景 移行後のアプリケーションの技術選定 「1. ドメイン駆動設計(DDD)」の採用理由 「2. モジュラモノリス」の採用理由 「3. CQRS」の採用理由 「4

                                          ドメイン駆動設計 × Spring Boot(Kotlin)で新規事業クラウドリンクスを運営している話 - クラウドワークス エンジニアブログ
                                        • コマンド・クエリという考え方 - Qiita

                                          オープンロジアドベントカレンダー2019の11日目の記事です。 12/7にLaravelで複雑性と戦うための4つのTipsという記事に続き、2つめの記事になります! この記事は、個人的にコマンド・クエリを探求したものになります。 前半は割とまじめですが、後半はほぼネタになっているので、気楽に読んでください。 コマンド・クエリがもっと身近に感じることで、コマンドクエリ分離原則やコマンドクエリ責務分離に興味が持てれば幸いです。 まずはじめに、コマンドクエリ分離原則を簡単に説明したいと思います。 コマンドクエリ分離原則(CQS) Bertrand Meyer氏が考えたコマンドクエリ分離原則(CQS)です。 青い鈍器と呼ばれることもある「オブジェクト指向入門」に記載されています。 私は、鈍器ということで怖くてまだ読めていません・・・。 ただ、考え方自体はとてもシンプルで、下記がすべてです。 基本的

                                            コマンド・クエリという考え方 - Qiita
                                          • ソフトウェアの設計原則②コマンド・クエリ分離の原則(CQS) | 楽水

                                            ソフトウェアの設計原則①:SOLIDの原則という記事で、変化に強いソフトウェアの代表的な特徴として以下をあげ、それを実現する、ソフトウェアの設計原則の一つ、SOLIDについて解説しました。 保守性が高いこと 修正箇所が局所化され、他の部分に影響しないこと(リスクの局所化)。 再利用性が高いこと ソフトウェアが部品化され、それを再利用することができる。 拡張性が高いこと ソフトウェアを構成する要素同士を疎結合することで、ソフトウェアを様々な実装で拡張することができる。 今回は、プログラミングにおける副作用を最小限に抑えることで保守性と再利用性を確保するための設計原則、コマンド・クエリ分離の原則(Command/Query Separation:CQS)について以下の観点で解説します。 プログラミングにおける副作用とは コマンド・クエリ分離の原則(CQS)とは コマンド・クエリ責務分離(CQR

                                            • 超PayPay祭りを支える購入導線の負荷対策について

                                              本記事は2022年11月に開催した「Tech-Verse 2022」で発表したセッションを要約したものです。アーカイブ動画を文末に掲載しています。質疑応答の様子も収録されていますのでぜひご覧ください。 Yahoo!ショッピングは1999年からサービスを開始しており、毎年、年末商戦の大規模なセールを実施してきました。特に11月11日を「いい買い物の日」と定めて、2015年~2019年はセールを開催していましたが、2018年にPayPayがサービスを開始したこともあり、2020年からは「超PayPay祭」と銘打っていくつかの季節で大規模セールを開催しています。 下図は、大型セールで「最も売れた日の取扱高」を棒グラフで示しています。年々記録は伸びており、2014年と2021年を比べると40~50倍もの差がありました。なお、2022年は現在もセール開催中のため、さらに伸びるかもしれません。 また、

                                                超PayPay祭りを支える購入導線の負荷対策について
                                              • 新規開発プロジェクトでCloud Spannerを導入した際に気をつけたアレコレ - asoview! Tech Blog

                                                はじめに アソビュー! Advent Calendar 2023の4日目(B面)です。 アソビューでバックエンドエンジニアをしている長友です。 アソビューでは新規開発プロジェクトで用いるデータベースとしてCloud Spannerを導入しました! Cloud Spannerはフルマネージド型の分散リレーショナルデータベースで高可用性と強力な一貫性を併せ持っています。 ただし、MySQLやPostgreSQLなどの他のDBMSそのままの使い方では上手くいかないことや、パフォーマンスが出ない側面もあります。 弊社としては初の導入となり全員がSpanner未経験の中、その特徴などを少しずつ理解し1年間Spannerと戦ってきました。 そこで今回はこの1年間のSpannerを用いた設計や開発において、Spannerゆえに苦労したこと、今後も気をつけたいことなどを数点紹介していきたいと思います。 は

                                                  新規開発プロジェクトでCloud Spannerを導入した際に気をつけたアレコレ - asoview! Tech Blog
                                                • akkaのハンズオン・トレーニングを用意しました、Javaのサンプルコード付きです! - Maverick's tech blog

                                                  akkaのハンズオントレーニングを用意しました。全5モジュールあり、アクター、イベント・ソーシング、CQRS、クラスタリングを手を動かしながら学べます。 第1回: リレーショナル・データベースのトランザクションによる排他制御 第2回: アクターによる非同期処理 第3回: アクターとデータベースのシステム(イベント・ソーシング) 第4回: アクターとデータベースのシステム(CQRS) 第5回: クラスタリング このトレーニングのサンプルコードはJavaで書かれており、Scalaのサンプルコードは用意していません。Scala版も用意したかったのですが、Java版のコードしか書く時間がありませんでした…もしScalaのサンプルコードをご自身で書いてみたい方は、私リチャードが喜んで手伝います。TwitterのDMで連絡をください。私のDMは全てのツイッターユーザーに開放しています。 トレーニングは

                                                    akkaのハンズオン・トレーニングを用意しました、Javaのサンプルコード付きです! - Maverick's tech blog
                                                  • Microsoft Word - AWSのクラウドネイティブなモダンアプリケーション開発 ホワイトペーパー.docx

                                                    1 AWS モダンアプリケーション開発 AWS におけるクラウドネイティブなモダンアプリケーション開発と実装パターン 2019 年 6 ⽉ アマゾン ウェブ サービス - AWS モダンアプリケーション開発 2ページ © 2019, Amazon Web Services, Inc. or its affiliates all rights reserved. 注意 本書は情報提供のみを⽬的としています。本書の発⾏時点における AWS の現⾏製品と慣⾏ を表したものであり、それらは予告なく変更されることがあります。 お客様は本書の情報、お よび AWS 製品またはサービスの利⽤について、独⾃の 評価に基づき判断する責任を負いま す。いずれの AWS 製品またはサービスも、 明⽰または黙⽰を問わずいかなる保証も伴うこと なく、「現状のまま」提供され ます。本書のいかなる内容も、AWS、その関

                                                    • Debezium Usecases in Tabelog - Tabelog Tech Blog

                                                      はじめに こんにちは。食べログシステム本部 技術部 マイクロサービス化チームの栗山です。 マイクロサービス化チームのミッションは「巨大なモノリシックサービスにおける開発の辛さを解消し、少人数のチームが自律的に意思決定しながら開発するためのシステム基盤を作る」です。2021年の Advent Calendar ではチームの成果として、食べログのレストラン検索インデックス同期システムを Change Data Capture (CDC) プロダクトの Debezium により改善した事例と、1 メッセージング基盤を Apache Kafka にリプレイスした事例を紹介しました。2 マイクロサービス化チームが提供するシステム基盤には例えば分散トレーシングのように特定の課題に特化したものもありますが、中には様々な課題に応用できる基礎技術的なものもあります。Change Data Capture (

                                                        Debezium Usecases in Tabelog - Tabelog Tech Blog
                                                      • Kaigi on Rails 2023に参加しました(Day2)|TechRacho by BPS株式会社

                                                        こんにちは、hachi8833です。Kaigi on Rails 2023無事終了&成功おめでとうございます!主催運営・スポンサー・スタッフ・参加者の皆さま、素晴らしいカンファレンスをありがとうございます。「参加してよかった」「幸せしかない」という声を何度となく直に耳にしました。 動画配信だけは現地で様子がわかりませんでしたが、こちらも順調だったようで何よりです。参加者は現地と動画視聴を合わせて1000人を超えていたそうです。 配信でしたが楽しめました! 運営の方・登壇された方、ありがとうございました🙏🙏#kaigionrails — すずか (@suzuka_hori) October 28, 2023 次回のスタッフ募集に応募が殺到したという話に、特に成功の手応えを感じました↓。 #kaigionrails にご参加の皆様、お疲れ様でしたそしてありがとうございました!おかげさまでと

                                                          Kaigi on Rails 2023に参加しました(Day2)|TechRacho by BPS株式会社
                                                        • CQRS なレコメンドシステムをGCP で構築した話 - スタディサプリ Product Team Blog

                                                          こんにちは、データエンジニアの @masaki925 です。 今年の春リニューアルされたスタディサプリの中学講座にて、レコメンドシステムを新規構築しました。 そのアーキテクチャが、当初意図していなかったものの、結果的にはCQRS (Command Query Responsibility Segregation) パターンと呼べるものになっていました。 本記事では、CQRS の特徴に則って当該アーキテクチャを紹介しつつ、今後に向けて考察します。 CQRS パターン + イベントソーシング なぜCQRS + イベントソーシングか 1. 分析用の学習ログと、レコメンドシステム用の学習ログは分けたい 2. 直前の学習状況をリアルタイムに反映したレコメンドをしたい 3. レコメンドロジックはルールベースで開始し、ログが溜まったのちに機械学習(ML) ベースに移行したい 4. 学習ログはスナップショ

                                                            CQRS なレコメンドシステムをGCP で構築した話 - スタディサプリ Product Team Blog
                                                          • AWS re:Invent 2019 で開催予定の Amazon DynamoDB セッション、ワークショップ、およびチョークトークのご案内 | Amazon Web Services

                                                            Amazon Web Services ブログ AWS re:Invent 2019 で開催予定の Amazon DynamoDB セッション、ワークショップ、およびチョークトークのご案内  AWS re:Invent 2019 がもうすぐ開催されます! この記事には、AWS re:Invent 2019 で行われる、Amazon DynamoDB セッション、ワークショップ、チョークトークの全リストを掲載しています。この記事の情報で、今年のラスベガスでのコンファレンスウィークをうまくスケジューリングしましょう。上司を説得できず、まだ AWS re:Invent 2018 に登録していない方々は、こちらの 出張の必要性についてのメモをお読みください。 レベル 200 – 入門 DAT205 – Verizon Media が Amazon DynamoDB を使用してプッシュ通知を実施す

                                                              AWS re:Invent 2019 で開催予定の Amazon DynamoDB セッション、ワークショップ、およびチョークトークのご案内 | Amazon Web Services
                                                            • クラウドネイティブ データ パターン - .NET

                                                              このコンテンツは eBook の「Azure 向けクラウド ネイティブ .NET アプリケーションの設計」からの抜粋です。.NET Docs で閲覧できるほか、PDF として無料ダウンロードすると、オンラインで閲覧できます。 本書で見てきたように、クラウドネイティブ アプローチによって、アプリケーションの設計、デプロイ、管理の方法が変わります。 また、データの管理や格納の方法も変わります。 図 5-1 は、その違いを比較したものです。 図 5-1. クラウドネイティブ アプリケーションでのデータ管理 経験豊富な開発者であれば、図 5-1 の左側のアーキテクチャをすぐに理解できるでしょう。 この "モノリシック アプリケーション" では、ビジネス サービス コンポーネントが共有サービス レベルに併置され、1 つのリレーショナル データベースからデータが共有されています。 データベースを 1

                                                                クラウドネイティブ データ パターン - .NET
                                                              • 社内向けのWeb APIをTypeScriptとExpressで作り直している話 - Adwaysエンジニアブログ

                                                                こんにちは。エージェンシー事業部でアプリケーションエンジニアをしている梅津です。 私が所属しているチームでは、日々機能追加や改善を行っているメインプロダクトの他に、社内の別サービスに向けてデータを提供するWeb API(以下、社内向けAPI)が存在しています。 この社内向けAPIはKotlin + Spring Bootで動いているのですが、それをTypeScript + Expressで作り直すというプロジェクトが進行しています。 今回はそのプロジェクトについてお話したいと思います。 社内向けAPIの概要 作り直す背景 何故KotlinやSpring Bootを使っていたのか 技術選定 プログラミング言語 実行環境 フレームワーク ORM アプリケーションのデプロイ先 環境構築 設計思想とディレクトリ構成 実装例 queries/get-awesome-file クエリの実装例 コントロ

                                                                  社内向けのWeb APIをTypeScriptとExpressで作り直している話 - Adwaysエンジニアブログ
                                                                • マイクロサービスパターン[実践的システムデザインのためのコード解説]

                                                                  マイクロサービスパターン[実践的システムデザインのためのコード解説] Chris Richardson(著), 長尾高弘(訳), 樽澤広亨(監修) インプレス 5,280円 (4,800円+税) 現在、ITの世界で注目を集めるマイクロサービスを体系的に紹介します。システム分割や設計のレベルから、プロセス間通信、トランザクション、データベース、テスト、デプロイなどほぼすべての側面を網羅した具体的な解説書です。 関連サイト本書の関連ページが用意されています。 マイクロサービスパターン[実践的システムデザインのためのコード解説] | インプレス内容紹介マイクロサービスは、現在最も注目されるソフトウェアのアーキテクチャスタイルです。巨大なモノリシック(一枚岩)システムを、独立した複数のサービスへと分割することによって、それらのサービスはRESTやメッセージングを介して協業できるようになります。機能

                                                                    マイクロサービスパターン[実践的システムデザインのためのコード解説]
                                                                  • まいくろさーびすあーきてくちゃメモ - Qiita

                                                                    概要 とあるマイクロサービス開発に携わることになり、取り巻く技術要素について調査した内容から良TIPSをブックマーク。サマリを追記。 とあるサービスの特徴 Javaベースのマイクロサービス 今後別言語のサービスを追加する可能性もあるためREST APIベースのインターフェース Javaにおいては高速ながDI必須 Dockerコンテナの利用 Gradleによるマルチプロジェクトビルド 設計思想はドメイン駆動設計を採用 👉マイクロサービス 複数の小さなサービスをAPIを介することで連結させたシステム サービス間の依存がないため、言語や基盤に関係なくサービスを追加・削除可能 代表的なAPIはREST APIで、http通信にてJsonを介したデータのやり取りを行う サービスが複数となるため、以下の課題をどう解決していくかが求められる サービスごとに参照する永続化層(DB、ファイルなど)をAPI

                                                                      まいくろさーびすあーきてくちゃメモ - Qiita
                                                                    • MuleRuntimeにおけるAPIデザインパターン ~ CQRSとEvent Sourcing~

                                                                      MuleSoftでAPIデザインを行う際にいくつかのAPIデザインパターンを利用することが多いですが、その中にCQRSとEvent Sourcingというパターンがあります。 これらは特にMuleSoftに特化したものではなく一般的なデザインパターンなのですが、MuleSoftでAPIを設計する上でも有効となる場面が多い概念なので簡単にご紹介します。 CQRS(Command Query Responsibility Segregation)とは?CQRSはCommand Query Responsibility Segregation (コマンドクエリ責務分離)の略で、簡単に言えば問い合わせ(Query)とデータ操作(Command)は別のオペレーションものと考えるべきだというデザインパターンです。 あるビジネスドメインに対するAPIを考える時、そのAPIにおいて書き込み/読み込みの速度

                                                                        MuleRuntimeにおけるAPIデザインパターン ~ CQRSとEvent Sourcing~
                                                                      • ヤフーで働きながら新規事業に挑戦している話

                                                                        ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ヤフーで広告システムを開発している大石純平という者です。 今回は私が、ソフトバンクイノベンチャーという新規事業提案制度を使って新規事業に挑戦している話をします。 現在作っているもの 新規事業で「BAKOON!」(バコーン)というサービスを作っています! これは、ライブ配信型のオンラインダンスエクササイズアプリで、インストラクターがアイドルであるということが特徴です! モーションキャプチャ機能を使って運動量を測ったり、アイドルとコミュニケーションを取りながら、一緒にダンスをしてエクササイズができます。 現在キャンペーン期間中で2月末まで無料で利用できるので、この機会に私たちのサービスを体験してみていただけるととてもうれし

                                                                          ヤフーで働きながら新規事業に挑戦している話
                                                                        1