Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
meetup_20210608_kintai.pdf
Search
Yusuke Konno(Rakus)
June 10, 2021
Programming
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
meetup_20210608_kintai.pdf
RAKUS Meetup発表資料
https://rakus.connpass.com/event/211947/
Yusuke Konno(Rakus)
June 10, 2021
More Decks by Yusuke Konno(Rakus)
See All by Yusuke Konno(Rakus)
jjug_ccc_fall_ykonno.pdf
yusukekonnorakus
0
1.1k
20210901_lt.pdf
yusukekonnorakus
0
26
Other Decks in Programming
See All in Programming
OSもどきOS
arkw
0
570
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
140
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
6
1.3k
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.6k
RTSPクライアントを自作してみた話
simotin13
0
610
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
360
A2UI という光を覗いてみる
satohjohn
1
140
dRuby over BLE
makicamel
2
380
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
580
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
410
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
66
55k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
The agentic SEO stack - context over prompts
schlessera
0
820
So, you think you're a good person
axbom
PRO
2
2.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
160
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
First, design no harm
axbom
PRO
2
1.2k
Transcript
#RAKUSMeetup ©2021 RAKUS Co., Ltd. 新機能開発の アーキテクチャ選定 楽楽勤怠開発課 今野裕介
#RAKUSMeetup 今野裕介(こんのゆうすけ) • 開発本部・第三開発部・楽楽勤怠開発課所属 • バックエンドエンジニア • 2020/7/1入社 ◦ 前職ではレコメンドエンジンASPサービスの設計・開発・運用・
保守を担当 ◦ 現在は打刻機能をメインに新機能開発を担当 • 趣味 ◦ カメラ・城巡り
#RAKUSMeetup 楽楽勤怠の紹介 • クラウド型勤怠管理サービスです • 2020/10に初期リリース後、ほぼ毎月新機能リリース中!
#RAKUSMeetup ICカード打刻機能 • 2021/2/16(火)にリリース • 端末はPitTouchPro2を利用 ◦ PCがなくても打刻が可能 ◦ 工場や店舗など、PCが持ち込めない環境でも打刻が可能
• 端末はラクスから販売したもののみ利用可能
#RAKUSMeetup PitTouchPro2の概要 • 打刻(出退勤・休憩・外出)やカード登録削除が可能 • リクエストはXHR Level2で行われている ◦ 組み込みのSafariが内部で稼働している模様 •
NWに問題がある場合には打刻を再送する機能が存在する ◦ 端末内部に打刻データを保存しておき、NWが再開すると再送する • ICカードはFeliCa、Mifareに対応
#RAKUSMeetup PitTouchPro2外観
#RAKUSMeetup ICカード打刻の要件 • PitTouchPro2端末による出勤打刻および退勤打刻ができる • PitTouchPro2端末によるカード登録・削除ができる ◦ 登録削除用に従業員照会も実施できる • 楽楽勤怠がメンテナンス中の場合、打刻データが失われない
◦ メンテ以外でも不慮の事故でデータが失われない
#RAKUSMeetup 打刻データの性質 • エンドユーザーの行動ログの一つである • データは失われてはいけない ◦ 失われるとエンドユーザーは勤怠時刻申請が必要になる ◦ 頻繁に失われていると楽楽勤怠への信頼性が下がる
◦ データが失われないための機構が必要 • 重複しても(大きな)問題がない ◦ 同じ日時の打刻を何回繰り返しても、勤怠計算上は影響がない ◦ 影響を受けるのはパフォーマンス面だけ
#RAKUSMeetup アーキテクチャ図 PitTouchPro2 打刻アプリ ケーション 楽楽勤怠 同期バッチ ① ④ ②
③ A B
#RAKUSMeetup RabbitMQ • 打刻データの保存のために採用 ◦ 社内での導入実績がある ◦ 公式ドキュメントなど、情報量が豊富 • バージョンは3.8系
◦ ErlangはZero-dependency Erlang RPM for RabbitMQの23系を採用 • クラスター構成
#RAKUSMeetup Resilience4jの採用 • Javaのフォールトトレラント用のライブラリ • サーキットブレーカー、リトライ、流量制御、タイムアウトハンドリングなどができる • 今回は以下を採用 ◦ サーキットブレーカー
▪ 打刻アプリケーション => 楽楽勤怠のAPI通信のみ(図中②) ◦ リトライ ▪ 楽楽勤怠API通信箇所(図中②およびB) ▪ RabbitMQへのPublish(図中③)
#RAKUSMeetup Resilience4jの採用箇所 PitTouchPro2 打刻アプリ ケーション 楽楽勤怠 同期バッチ ① ④ ②
③ A B サーキットブレーカー+リトライ リトライのみ
#RAKUSMeetup やってみた感想 • 実現すべき事自体はシンプル • 事故った時の想定をどこまでやるかが大変 ◦ RabbitMQの採用、リトライ、サーキットブレーカーの適用 ◦ 異常系のテストが大変
• 情報量の偏り ◦ RabbitMQは公式ドキュメントや英語文献が豊富 ◦ Resilience4jは公式のサンプルコードすら動かなくて辛い