2019」が開催されました。本稿では,2日目となる「カンファレンスDAY」におけるさまざまなセッションのなかから,実サービスへのScalaの応用に関する3つのセッションをピックアップして紹介します。本稿を読み,自らの携わるサービスにおけるScalaの利用に興味を持っていただけると嬉しいです。Cluster使ってみた」です。先行リリースされた伝統的なCRUD構成のQRコード決済サービスを,Akkaをはじめとするソフトウェアスタックを使って置き換えた事例が紹介されました。Sourcing+CQRSなアーキテクチャの採用です。同氏はこの2つの用語について説明します。Sourcingについて。おおざっぱに言えば,決済の開始や入金など,システムの中で起きた「イベント」を順次データストアに記録していくというものです。状態を持たず(つまりRDBMSにおけるUPDATEがなく)INSERTしか起こらないため,ロック不要で複数ノードへの分散書込みが可能という利点を持ちます。このようなしくみを採用することの欠点も存在します。イベントしか永続化されていないため,データの集計や一覧を作るためにコストがかかってしまうのです。QRコード決済サービスにおいては「店舗がこれまでの決済を一覧する」といったの機能も必要になってきますから,この欠点を放置しておくことはできません。Segregation,コマンド/クエリ責務分離)というしくみです。文字通り「コマンド=書き込み」と「クエリ=読み込み」を分離するというもので,コマンドサイドのデータストア(今回で言えば,Cassandraへのイベントの書込み)からクエリサイドのデータストア(今回はMariaDBを使用)へと非同期でデータを反映し,集計や一覧が必要になった場合はクエリサイドへ問い合わせる......という形になります。コマンドサイドからクエリサイドへのデータの反映には一定の遅延が発生するため,一時的に整合性が保たれない場合があります。結果整合性しか担保されないということです。この場合,実装しようとしているシステムが結果整合性を許容できるよう設計する必要が出てくるでしょう。今回のプロジェクトでは,一部の場面で結果整合性を許容できない場合があったといいます。Persistenceで,コマンドサイドのデータストアへのイベントの記録と同時に,遅延のない情報取得に必要な情報を持った「エンティティ」の状態を遷移させます。Persistenceの持つ諸々の特長により,安全なスケールアウトが可能になり,遅延なく状態を確認できるようになりました。SourcingおよびCQRSのしくみについて,セッションの内容をもとに簡単に紹介しました。このあとも設計・実装にあたっての経験が述べられるなど,Akkaの活用事例として充実したセッションとなりましたので,気になる方はぜひスライドも参照してみてください。Scio」というセッションを紹介します。Mix」といった,さまざまなレコメンド機能を持っています。した機能の実現のためには,大量のデータをうまく扱うしくみの構築・運用が不可欠です。分析や処理をすばやく簡単に行えることはもちろん,コストも抑えなければなりませんし,GDPRへの対応などプライバシーへの配慮も必要......などなど,数多くの乗り越えるべき課題があります。同氏はこれを「データ処理は難しく,そして高価である」とまとめました。した課題を解決するためにSpotifyで開発されたのがScioです。APIといった位置付けのソフトウェアで,OSSとして公開されています。Scalaならではの特長として「型安全性」を挙げました。Spotifyではこれらのゴールを達成するために,意欲的にScioをアップデートしつづけているのです。セッションの後半では,Scioの最近のアップデートのなかから,シリアライズの効率化および型安全性の向上や,巨大なデータセットどうしのJOINの効率化,より使いやすく型安全なクエリ機能などを紹介しました。月間アクティブユーザが2億人を超えるような,世界中の人たちが利用するサービスの運用において,Scalaがその特長を活かしながら積極的に活用されていることがわかるセッションとなったのではないでしょうか。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。