2. LINE Backend Architecture
Please note that this picture is just concept of our architecture.
Actually, There are much more services!
ErlangServiceServiceServiceServiceServiceErlangErlangStorageServiceServiceServiceServiceServiceServiceServiceServiceServiceServiceStorageMQThriftoverSPDYThriftThriftAMQPAMQPThriftOther servicesThriftOther servicesServiceServiceServiceServiceServiceStorageThriftServiceServiceServiceServiceServiceAMQPStorageThrift
3. LINE’s microservices
•Decentralized Governance
–Our services may be implemented by different languages, libraries, middlewares, …
•Decentralized Data Management
–Our services may have own (huge!) storage.
–HBase, Redis, MongoDB, MySQL …
•Evolutionary Design
–Service layout is incrementally changing according to the scale of LINE userbase.
4. Scala at LINE Backend (1)
•Fan-out (Bulk Message Sending)
–Producers pushes messages to MQ
–Consumers written in Scala sends them to massive userbase asynchronously.
5. Scala at LINE Backend (2)
•Asynchronous Tasks Monitoring Tool
–Visualize asynchronous tasks running on each server of our JVM cluster.
–Allows us to answer:
•What kind of tasks are running or waiting?
•How long time does it take?
•Where is performance bottle neck?
–Powered by
•Finagle, Slick, Saddle
6. Scala at LINE Backend (3)
•Distributed Tracing System (line-tracer)
–Visualize a service call graph via Zipkin.