The document discusses ChatWork's motivation for developing a distributed ID generator and describes how it works. The key points are:
- ChatWork migrated from MySQL to Kafka/HBase and needed scalable, sortable IDs without a single point of failure.
- Their distributed ID generator is inspired by Snowflake but uses ZooKeeper for coordination between ID workers instead of a timestamp.
- ID workers register with ZooKeeper and clients discover available workers to distribute load. Workers generate IDs using an actor model implementation for scalability and fault tolerance.
Non-blocking IO to tame distributed systems ー How and why ChatWork uses async...TanUkkii
This document discusses how ChatWork migrated from using a native blocking HBase client to the asynchronous non-blocking asynchbase client. It describes problems they faced with the blocking client, such as long running queries blocking threads. It then explains how asynchbase and Akka streams were used to build an asynchronous non-blocking interface. Performance tests showed the asynchronous approach improved throughput by 30% and reduced latency at the 95th percentile from 1000ms to 200ms. Migrating to a non-blocking client made the system more resilient to partial failures.
Architecture of Falcon, a new chat messaging backend system build on ScalaTanUkkii
The document describes the architecture of Falcon, a new Scala-based backend chat messaging system. The key aspects of the architecture are:
- It uses an event-driven architecture with CQRS and event sourcing principles. Writing and reading are separate with different data models and storage.
- Events are stored in Kafka for durability and consumed asynchronously by downstream systems to update read models and notify legacy systems.
- The architecture is designed for scalability, high performance, resiliency and low cost through principles like auto-sharding and parallel processing in Kafka.
4. マイクロサービスの難しさ
“every single one of your peer teams suddenly becomes a
potential DOS attacker”
周りの全ての同僚チームが、突如 DOS アタッカーになりうる
ようになった
和訳原文
Stevey の “Google プラットフォームぶっちゃけ話”にでてくる
Amazonのマイクロサービス化によるAWS誕生のくだり
システム間のインターフェースとしてもっとも使われるHTTPに
背圧制御をもたらす必要がある