yoskhdia’s diary

DDDとかプログラミングとかアーキテクチャとか雑多に

新しいモデリング手法: EventStormingをはじめるための準備

EventStormingというモデリング手法があります。

www.eventstorming.com

EventStorming is a flexible workshop format for collaborative exploration of complex business domains.

EventStormingは、複雑なビジネスドメインを協同的に探求するための柔軟なワークショップ形式のひとつです。(意訳)

考案者はAlberto Brandolini氏で2013年にはブログに最初の投稿がされています。 海外での認知度は高く*1、Eric Evans氏のプレゼンテーションの中でも強力な手法であると言及*2されています。

近々、この手法を試せる機会が来そうなので、そのやり方について(私見を交えつつ)まとめてみるエントリです。

続きを読む

「Don't build framework, Build platform」というテーマでエムスリーさんのTech Talkに参加してきました

ScalaMatsuri 2018で @jooohn1234 さんから、エムスリーさんで行われているTech Talkにご招待いただいたので発表してきました。 なんと、今回で第92回(!)

m3dev.github.io

発表資料

docs.google.com

今回もトークスクリプトを付けて発表資料を公開します。

エムスリーさんは定期的に社内技術発表会を開催しており、社外の人でもカジュアルに参加できる運営をしておられます。 興味のある方はコンタクトをとってみてはいかがでしょう?

そのトランザクションは果たして本当にトランザクションなのだろうか?

DDDネタです。 DDD Community-JPのDiscordで「複数の集約(Aggregate)をまたいで整合性をどう担保するのが良いのか?」という話がされていました。 この話を読んでいて、

yoskhdia.hatenablog.com

でもサラッと触れた「トランザクション」をもう少し掘ってみようかなと思い立ったので書いてみるエントリです。

続きを読む

Kamonを使ってログにトレースIDを出力する(+Play Framework)

一般に非同期処理を行うと、その実行をログからトレースすることは難しくなります。 Scalaアプリケーションを運用する際もこれが問題となります。 コツコツとログにIDを埋めて回ることもできますが、横断的な関心事はAOPで解決したくもなります。 ということで、今回はKamonを試してみました。

kamon.io

Kamonは便利なのですがイマイチドキュメントがまとまっておらず、ちょっと苦労したのでここにまとめておくエントリです。

続きを読む

「Reactive Messaging Patternsに学ぶシステム間統合」というテーマで発表してきました

第5回Reactive System Meetup in 西新宿で登壇してきました*1

reactive-shinjuku.connpass.com

発表資料

docs.google.com

一部表現を変えつつ、補足をして発表資料を公開します*2トークスクリプトもつけてありますので併せてどうぞ。 明日から開催のScala Matsuri 2018の弾みになれば幸いです。

泣く泣くカットしたトランザクションの話は続きを読むからどうぞ↓

*1:発表時間1分超えた…

*2:だれか英訳手伝ってくれないかな…

続きを読む

Scalaで良い感じにURI(URL)を操作する

TL;DR

sttpのcoreライブラリだけ使用しました。
しかし、デフォルトでデコードも行われるため、これを回避する方法を考えました。
将来的に使えなくなる可能性はあります(!)

続きを読む

Snowflake形式のIDを採用した場合の苦労ポイント

高速にIDを採番できる仕組みを検討したとき、Snowflake形式のID生成は選択肢のひとつとして有力です。 Snowflakeを紹介する記事は見つかりますが、実際に採用して苦労した話はあまり聞かないため、備忘的に書いてみるエントリです。

続きを読む