Chatwork Creator's Note

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

読者になる

Scala

既存のアプリケーションからAkkaを切り離して大幅なコスト増を回避する

みなさん、こんにちは!Chatworkの原田 (@shinharad) です。 今回は、私が最近取り組んでいる、既存のScalaアプリケーションからAkkaの依存を切り離す準備を進めている話を書こうと思います。Akkaの切り離し方は色々あると思いますが、一つの方法として参考…

モバイルプッシュ通知システムの一部をScalaに移行した

はじめまして、サーバーサイド開発部(Scala)の阿部(rabe1028)です。 業務ではScalaを書いていますが、一番好きな言語はRustです。 Chatwork Advent Calendar 2022 13日目の記事です。 昨年から今年の頭にかけて実施したシステム移行のお話をチームメンバ…

インターンシップ課題として CTF を作った

どうも、こんにちは。 この場では2回目になります。 田尻(@lmdexpr)です。 今回は Chatwork Advent Calendar 2022 5日目(土日を入れると7日目)の記事です。*1 最近は CTF やらプログラミングコンテスト熱が再燃しています。 あと、OCaml 5.0 がリリース…

Akkaのライセンス変更について

こんにちは、かとじゅんです。 『Chatwork Product Day 2022』に関連してブログを書こうということで、Akkaのプラグインの改善などをテーマに記事を書こうと思ったのですが、Akkaのライセンス変更が界隈ではちょっとしたニュースになりました。「Chatworkさ…

ScalaMatsuri 2022参加レポート〜VimでScalaを書けるようにする〜

こんにちは。都志(@louvre2489)です。 2022/03/19〜03/20にかけて実施されたScalaMatsuri 2022に参加してきました。 今回も興味深いセッションが多く、とても楽しめるイベントでした。セッション内容は以下で確認ができ、資料が共有されているものも多いの…

Akka Actors を便利につかう

Chatwork アドベントカレンダー および Scala アドベントカレンダー の 9 日目の記事です。(盛大に遅刻しました ‍♂️ ) こんにちは。hayasshi です。 サーバーサイド開発部で Scala プロダクトの開発運用保守をしています。 Akka は分散並列処理のためのツー…

Scala 3に備える社内勉強会の取り組みについて

みなさん、こんにちは!Chatworkの原田 (@shinharad) です。 今回は、最近弊社で取り組んでいる Scala 3 の社内勉強会について、このような流れでご紹介したいと思います。 最初に Scala 3 の今の状況をざっと確認 Chatworkでは Scala 3 の社内勉強会を継続…

Github ActionsによるScala製ライブラリの依存ライブラリ更新と定期リリースの自動化

どうも、かとじゅん(@j5ik2o)です。 Scala製ライブラリでの依存ライブラリ更新と定期リリースをGithub Actionsを使って自動化するようにしたので、以下にその方法をまとめます。 具体的な例を見たい場合は以下のリポジトリを参照してください。 github.com

Chatwork の Scala プロダクトとそれを支えるチーム その弐

これは Chatwork Advent Calendar 2020 / Scala Advent Calendar 2020 11日目の記事になります。 こんにちは。サーバーサイド開発部の Scala プロダクトを開発運用する部署でマネージャーをしている、 hayasshi です。 前回は、Chatwork で実際に稼働してい…

Chatwork の Scala プロダクトとそれを支えるチーム その壱

これは Chatwork Advent Calendar 2020 / Scala Advent Calendar 2020 10日目 の記事になります。 こんにちは。サーバーサイド開発部の Scala プロダクトを開発運用する部署でマネージャーをしている、 hayasshi です。 Chatwork は Scala を採用すると決め…

Akka HTTP で複数エンドポイントに共通するログを Routing DSL で実装

9月に入社しました、サーバーサイド開発部 Scala チームの立野(@exoego)です。 ふだんは長野県の古民家から週5で在宅勤務しています。 弊社 Chatwork では現在、HTTP ベースの製品開発に Scala を用いるときは Akka HTTP というモジュールを採用しています…

あなたの知らないScalaの世界~Scalaでコードゴルフ~

挨拶 初めまして、2020年6月に大学院を中退し*1新卒として入社した田尻(@lmdexpr)です。 人生は色々ですね。 今はサーバーサイド開発部(Scala)で元気に毎日Scalaを書いています。 その辺の経緯にも軽く*2触れているインタビュー記事はこちら ↓ compass.lab…

DynamoDB用クライアントの制限を考慮したAkka Streamsの実装を作る

どもー、かとじゅん(@j5ik2o)です。 Scala Advent Calendar 2020 - Qiitaの2日目の記事です。 今回の記事は掲題のとおり、DynamoDBのI/OをAkka Streamsで効率的に実装してみようというネタです。

検証中の新しいアーキテクチャをご紹介します!!

この記事は Chatwork Advent Calendar 2020 2日目の記事です。 前日はプロダクトマネージャー宮下の「SaaS エンジニアのキャリアパスとしてのプロダクトマネージャー」でした。 全国のエンジニアの皆さん、こんにちは。 コアテクノロジー開発部 Scalaエンジ…

ULID生成器をScalaで実装してみた

おはこんにちは、かとじゅん(@j5ik2o)です。 今回の記事は、IDフォーマットの一種であるULIDの実装についての記事です。 ULIDよーわからんという人は、以下の僕の記事を参照してみてください。 zenn.dev ID生成をどうするか議論によくなりますが、最近はソー…

ScalaMatsuri 2020 - 1日目発表資料まとめ!

皆さま、お疲れさまです! 今年も ScalaMatsuri 盛り上がってますね! 今年も熱い発表ばかりで、きっと聞きたい発表が重なった方もおられるはず・・という事で、取り急ぎ公開されている発表資料リンクをまとめました!二日目も終盤ですが、聞き逃した発表に…

ScalaMatsuri 2020 に出展します!

こんにちわ。ブログ初投稿の門田 (@nottegra) です。 今年も Chatwork は、ScalaMatsuri 2020 にブースを出展いたします! また弊社の加藤、立野も下記の内容で登壇いたします。ブース含めて是非ご覧になってください。

Scala Steward を CircleCI で定期実行させる方法

こんにちは。cw-kajiwaraです。 privateレポジトリに対してScala StewardをCircleCIで定期実行するようにしてみたので、その設定方法の共有をさせていただきます。 社内レポジトリなどのpublicにできない or したくないレポジトリの依存ライブラリ更新作業を…

Biryani プロジェクト(メッセージ検索機能のCloudSearchからElasticsearchへのリプレイス)について vol.4 - 差分マイグレーション編 -

こんにちは、梶原(cw-kajiwara)です。 Biryani PJシリーズでの投稿です。今回の記事ではメッセージ検索機能におけるメッセージの差分マイグレーションを行うKafka Consumerアプリケーション、通称Indexerについて紹介いたします。 vol.1ではプロジェクト発足…

ScalaMatsuri 2019で「実践 Clean Architecture」の発表とスポンサー&ブース出展させていただきました

おはこんばんちわ。 藤井 ( @yoshiyoshifujii ) です。 この度、2年ぶり3回目のScalaMatsuri登壇の機会をいただきました。ありがとうございます。 発表資料は以下です。 speakerdeck.com 使用しているツールの関係で、資料の下部の文字が切れております。以…

ScalaMatsuri 2019 に参加します!

今年も Chatwork は、スポンサーしている ScalaMatsuri 2019 にブース出展企業として参加いたします! また弊社の藤井、加藤も下記の内容で登壇もいたしますので、是非お越しください。 藤井 実践 Clean Architecture 6月28日(金) カンファレンスDayの会場C…

Scala福岡 2019で「実践 Clean Architecture」を発表させていただきました

こんにちは。藤井 @yoshiyoshifujii です。 先日 2019年01月19日(土) 、福岡で開催されました Scala福岡 に登壇させていただきました。 scala-fukuoka.org 発表資料は、こちらです。 また、発表にあたり作成したソースコードは、こちらです。 github.com 以…

akka-httpでの総当たり攻撃(brute-force-attack)対策について

こんにちはかとじゅん(@j5ik2o)です。 akka-httpで特定の失敗条件を元に、特定のリクエストをブロックするための仕組みを、akka-guardとして実装したので、設計思想や使い方に関して簡単にお知らせします。今回、想定したシナリオは、認証の総当たり攻撃(bru…

コスパのよいScala開発マシンを求めて

ごきげんよう、かとじゅんです。 某社のiMac Pro 138台導入の件はブルジョア感がハンパないですね…。それとは少し違う方向性で、Scalaのビルド効率化をテーマとして、今回は最新のパーツで自作マシン(OSはUbuntu)を組んでみました。そのマシンとMacとでコス…

ScalaJS for TypeScripter

こんにちは。@kyo_agoです。 だいぶScalaJSでの開発知見が溜まってきたので共有したいと思います。

Scala採用を決めて3年半たった、CTOの振り返り。アーキテクチャ刷新を成し遂げるために必要なこと

メリークリスマス!ChatWork Advent Calendarもついにラストとなりました。 本日の記事はChatWork CTOの山本が担当です。 ChatWorkでは約3年半前に、PHPの独自フレームワークでつくられた大規模システムを、Scalaを使ってゼロベースでつくりなおすという決断…

Akka Typed 触ってみた感想

これは ChatWork Advent Calendar 2017 - Adventar の、14日目の記事です。 13日目は id:cw-nishiguchi による チャットワークのクラス設計を見直した話 - ChatWork Creator's Note でした。 こんにちは。プロダクト開発部の@hayasshi_です。 Scala のプロダ…

ScalaJS in 2017

こんにちは。@kyo_agoです。 2015年ごろに盛り上がっていたScalaJSですが、最近あまり話を聞かないのでまとめてみようと思います。

ScalaアプリをDockerイメージ化してHerokuにデプロイした話

@hayasshi_です。Scalaのプロダクトを開発しています。 Heroku、気軽にWebアプリケーションを公開できて便利ですよね。 先日公開した「チャットワークのWebhookの署名検証を各言語で実装してみた」の記事を書くにあたって、検証用のScalaアプリを Heroku Con…