[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article:line-streaming":3},{"meta":4,"markdown":141},{"type":5,"articleId":6,"slug":7,"title":8,"titleEn":9,"category":10,"summary":11,"publishedAt":12,"image":13,"vocabulary":14},"article","tech-line-streaming","line-streaming","LINEの大規模リアルタイム配信基盤","LINE's Large-Scale Realtime Messaging Infrastructure","tech","How LINE delivers messages to hundreds of millions of users in realtime: WebSocket gateways, Kafka, Redis caches, fan-out patterns, and geographically distributed datacenters across Japan and Asia.\n","2026-04-27T00:00:00Z","https:\u002F\u002Fimages.yamiyomi.com\u002Ftech-line-streaming.png",[15,20,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137],{"word":16,"reading":17,"meaning":18,"level":19},"配信","はいしん","delivery","N2",{"word":21,"reading":22,"meaning":23,"level":24},"即時","そくじ","realtime","N1",{"word":26,"reading":27,"meaning":28,"level":24},"即時性","そくじせい","realtime nature",{"word":30,"reading":31,"meaning":32,"level":19},"遅延","ちえん","latency",{"word":34,"reading":35,"meaning":36,"level":24},"数十億","すうじゅうおく","tens of billions",{"word":38,"reading":39,"meaning":40,"level":19},"接続","せつぞく","connection",{"word":42,"reading":43,"meaning":44,"level":19},"維持","いじ","maintenance",{"word":46,"reading":47,"meaning":48,"level":19},"同時","どうじ","simultaneous",{"word":50,"reading":51,"meaning":52,"level":24},"拡散","かくさん","fan-out",{"word":54,"reading":55,"meaning":56,"level":19},"分散","ぶんさん","distribution",{"word":58,"reading":59,"meaning":60,"level":24},"拠点","きょてん","site",{"word":62,"reading":63,"meaning":64,"level":19},"地域","ちいき","region",{"word":66,"reading":67,"meaning":68,"level":19},"拡張","かくちょう","extension",{"word":70,"reading":71,"meaning":72,"level":24},"永続化","えいぞくか","persistence",{"word":74,"reading":75,"meaning":76,"level":24},"永続","えいぞく","persistent",{"word":78,"reading":79,"meaning":80,"level":19},"順序","じゅんじょ","order",{"word":82,"reading":83,"meaning":84,"level":19},"保証","ほしょう","guarantee",{"word":86,"reading":87,"meaning":88,"level":19},"障害","しょうがい","failure",{"word":90,"reading":91,"meaning":92,"level":24},"復旧","ふっきゅう","recovery",{"word":94,"reading":95,"meaning":96,"level":19},"切替","きりかえ","failover",{"word":98,"reading":99,"meaning":100,"level":24},"冗長","じょうちょう","redundant",{"word":102,"reading":103,"meaning":104,"level":19},"構成","こうせい","configuration",{"word":106,"reading":107,"meaning":108,"level":24},"帯域","たいいき","bandwidth",{"word":110,"reading":111,"meaning":112,"level":19},"圧縮","あっしゅく","compression",{"word":114,"reading":115,"meaning":116,"level":19},"通知","つうち","notification",{"word":118,"reading":119,"meaning":120,"level":19},"送信","そうしん","send",{"word":122,"reading":123,"meaning":124,"level":19},"受信","じゅしん","receive",{"word":126,"reading":127,"meaning":128,"level":19},"中継","ちゅうけい","relay",{"word":130,"reading":131,"meaning":132,"level":24},"蓄積","ちくせき","accumulation",{"word":134,"reading":135,"meaning":136,"level":19},"鍵","かぎ","key",{"word":138,"reading":139,"meaning":140,"level":24},"暗号化","あんごうか","encryption","\n::para\nLINEは[毎日]{まいにち:every day:N5}、[何]{なん:how many:N5}[億]{おく:hundred million:N2}もの[利用]{りよう:user:N3}[者]{しゃ:person:N4}に[即時]{そくじ:realtime:N1}に[メッセージ]{めっせーじ:messages}を[届ける]{とどける:deliver:N2}[必要]{ひつよう:must:N3}があります。グループチャット[一]{いち:one:N5}つに[数千]{すうせん:several thousand:N3}[人]{にん:people:N5}が[参加]{さんか:participating:N3}している[場合]{ばあい:case:N3}や、[公式]{こうしき:official:N3}[アカウント]{あかうんと:account}が[一斉]{いっせい:simultaneously:N1}[配信]{はいしん:broadcast:N3}を[行う]{おこなう:performs:N5}[場合]{ばあい:case:N3}など、[一]{いち:one:N5}つの[投稿]{とうこう:post:N1}が[爆発的]{ばくはつてき:explosively:N2}に[拡散]{かくさん:fan out:N1}する[状況]{じょうきょう:situations:N2}も[珍しく]{めずらしく:unusual:N2}ありません。[本]{ほん:this:N5}[記事]{きじ:article:N3}では、こうした[即時性]{そくじせい:realtime nature:N1}を[支える]{ささえる:supports:N3}LINEの[配信]{はいしん:delivery:N3}[基盤]{きばん:infrastructure:N1}を、[公開]{こうかい:publicly:N4}[資料]{しりょう:materials:N3}から[読み取れる]{よみとれる:can be inferred:N3}[範囲]{はんい:scope:N1}で[概観]{がいかん:overview:N1}します。\n\n#en\nLINE must deliver messages in realtime every day to hundreds of millions of users. It is not unusual to encounter situations where a single post fans out explosively — group chats with thousands of participants, or simultaneous broadcasts from official accounts. This article gives an overview, within what can be inferred from public materials, of the delivery infrastructure that supports this realtime nature.\n::\n\n::heading\n[長時間]{ちょうじかん:long-running:N5}[接続]{せつぞく:connections:N2}を[抱える]{かかえる:holding:N3}ゲートウェイ\n\n#en\nGateways That Hold Long-Running Connections\n::\n\n::para\nLINEクライアントは、[起動]{きどう:startup:N4}[中]{ちゅう:while:N5}ずっとサーバーと[接続]{せつぞく:connection:N2}を[維持]{いじ:maintain:N1}し、[新着]{しんちゃく:newly arrived:N4}メッセージや[通知]{つうち:notifications:N4}を[即座に]{そくざに:immediately:N1}[受け取れる]{うけとれる:can receive:N3}ように[設計]{せっけい:designed:N2}されています。これを[支える]{ささえる:supports:N3}のが、WebSocket（[または]{または:or}HTTP\u002F2、[独自]{どくじ:proprietary:N1}プロトコル）を[終端]{しゅうたん:terminate:N1}する[専用]{せんよう:dedicated:N2}ゲートウェイ[群]{ぐん:cluster:N2}です。[一]{いち:one:N5}[台]{だい:server:N4}あたり[数十万]{すうじゅうまん:hundreds of thousands:N3}の[同時]{どうじ:simultaneous:N4}[接続]{せつぞく:connections:N2}を[捌く]{さばく:handle:N1}ことが[要求]{ようきゅう:required:N3}され、[一般的]{いっぱんてき:typically:N2}にはNetty／epoll[等]{とう:etc.:N3}を[活用]{かつよう:utilizing:N3}したNon-blocking I\u002FOで[実装]{じっそう:implemented:N2}されると[考えられて]{かんがえられて:thought:N4}います。\n\n#en\nLINE clients are designed to maintain a connection to the server throughout startup and immediately receive new messages and notifications. Supporting this is a cluster of dedicated gateways terminating WebSocket (or HTTP\u002F2 or proprietary protocols). Each server is required to handle hundreds of thousands of simultaneous connections, and they are thought to be implemented using non-blocking I\u002FO leveraging Netty\u002Fepoll, etc.\n::\n\n::callout\n[長時間]{ちょうじかん:long-running:N5}[接続]{せつぞく:connections:N2}は[一般]{いっぱん:typical:N2}のHTTP[アプリケーション]{あぷりけーしょん:application}とは[別物]{べつもの:different beast:N4}で、メモリ[使用]{しよう:usage:N4}[量]{りょう:amount:N2}・GC[挙動]{きょどう:behavior:N1}・OSのファイルディスクリプタ[制限]{せいげん:limits:N3}など[低]{てい:low:N2}[層]{そう:layer:N2}の[最適化]{さいてきか:optimization:N3}が[効きます]{ききます:matters:N2}。\n\n#en\nLong-running connections are a different beast from typical HTTP applications — low-layer optimizations like memory usage, GC behavior, and OS file-descriptor limits matter.\n::\n\n::heading\n[拡散]{かくさん:fan-out:N1}[戦略]{せんりゃく:strategy:N2}：[書込]{かきこみ:write:N3}[時]{じ:on:N5}か[読込]{よみこみ:read:N3}[時]{じ:on:N5}か\n\n#en\nFan-Out Strategy: On Write or On Read\n::\n\n::para\nチャット[配信]{はいしん:delivery:N3}の[基本]{きほん:fundamental:N1}[論点]{ろんてん:point:N3}は「[拡散]{かくさん:fan-out:N1}を[いつ]{いつ:when}[行う]{おこなう:perform:N5}か」です。Fan-out on Writeでは、メッセージ[投稿]{とうこう:post:N1}[時]{じ:on:N5}に[各]{かく:each:N2}[受信]{じゅしん:recipient:N3}[者]{しゃ:person:N4}の[受信]{じゅしん:inbox:N3}キューへ[書き込み]{かきこみ:write:N3}ます。[読み出し]{よみだし:read:N5}は[速い]{はやい:fast:N3}が、[巨大]{きょだい:huge:N2}グループでは[書込]{かきこみ:write:N3}コストが[爆発]{ばくはつ:explodes:N2}します。Fan-out on Readでは、グループの[共通]{きょうつう:shared:N3}メッセージログだけ[書き]{かき:write:N5}、クライアントが[読込]{よみこみ:read:N3}[時]{じ:on:N5}に[拡散]{かくさん:fan-out:N1}します。[巨大]{きょだい:huge:N2}グループに[強い]{つよい:strong:N4}が[読込]{よみこみ:read:N3}[側]{がわ:side:N3}が[複雑]{ふくざつ:complex:N2}になります。LINEはチャットの[規模]{きぼ:size:N1}や[種類]{しゅるい:type:N3}に[応じて]{おうじて:according to:N1}[両者]{りょうしゃ:both:N3}を[使い分けて]{つかいわけて:routes:N4}いると[見られて]{みられて:seen:N5}います。\n\n#en\nThe fundamental point of chat delivery is \"when to perform fan-out.\" Fan-out on Write writes to each recipient's inbox queue at post time — reads are fast, but write cost explodes for huge groups. Fan-out on Read writes only to the shared group message log, with clients fanning out at read time — strong for huge groups but complex on the read side. LINE is seen to use both depending on the chat's size and type.\n::\n\n::heading\nKafkaによる[非同期]{ひどうき:asynchronous:N3}[処理]{しょり:processing:N3}\n\n#en\nAsynchronous Processing with Kafka\n::\n\n::para\n[投稿]{とうこう:posted:N1}されたメッセージは、ゲートウェイから[直接]{ちょくせつ:directly:N2}[受信]{じゅしん:recipients:N3}[者]{しゃ:plural:N4}[全員]{ぜんいん:all:N3}に[配信]{はいしん:delivered:N3}されるのではなく、Apache Kafkaを[中継]{ちゅうけい:relay:N1}として[非同期]{ひどうき:asynchronous:N3}に[処理]{しょり:processed:N3}されると[考えられて]{かんがえられて:thought:N4}います。Kafkaは[高い]{たかい:high:N5}スループット・[永続化]{えいぞくか:persistence:N2}・パーティションごとの[順序]{じゅんじょ:order:N1}[保証]{ほしょう:guarantee:N1}を[特徴]{とくちょう:features:N1}とするため、[拡散]{かくさん:fan-out:N1}・プッシュ[通知]{つうち:notification:N4}・[既読]{きどく:read receipt:N1}[管理]{かんり:management:N2}・[履歴]{りれき:history:N1}[保存]{ほぞん:save:N1}など[各種]{かくしゅ:various:N2}サブシステムへの「[共通]{きょうつう:common:N3}バックボーン」として[適して]{てきして:suited:N3}います。LINEは[長年]{ながねん:many years:N5}にわたるKafkaの[大規模]{だいきぼ:large-scale:N1}[運用]{うんよう:operation:N4}[実績]{じっせき:track record:N2}を[公表]{こうひょう:publishing:N3}しており、[内部]{ないぶ:internally:N3}に[専門]{せんもん:dedicated:N2}チームを[置いて]{おいて:has placed:N3}いると[語られて]{かたられて:said:N5}います。\n\n#en\nPosted messages are thought to be processed asynchronously through Apache Kafka as a relay rather than delivered directly from the gateway to all recipients. Because Kafka offers high throughput, persistence, and per-partition order guarantees, it is suited as a \"common backbone\" to various subsystems — fan-out, push notifications, read-receipt management, history storage, etc. LINE has published its track record of operating Kafka at scale over many years and is reportedly running it with a dedicated internal team.\n::\n\n::heading\nRedis：オンライン[状態]{じょうたい:state:N1}と[受信]{じゅしん:inbox:N3}キャッシュ\n\n#en\nRedis: Online State and Inbox Cache\n::\n\n::para\n「[今]{いま:now:N5}どのユーザーがどのゲートウェイに[接続]{せつぞく:connected:N2}しているか」という[情報]{じょうほう:information:N3}は、[頻繁]{ひんぱん:frequently:N1}に[変わる]{かわる:changes:N3}にもかかわらず、[配信]{はいしん:delivery:N3}[時]{じ:on:N5}に[必ず]{かならず:always:N3}[参照]{さんしょう:referenced:N2}される[基本]{きほん:fundamental:N1}データです。これらの[セッション]{せっしょん:session}[情報]{じょうほう:info:N3}や[最新]{さいしん:latest:N3}メッセージ[キャッシュ]{きゃっしゅ:cache}は、Redis[等]{とう:etc.:N3}のインメモリストアに[保持]{ほじ:held:N1}されると[一般的]{いっぱんてき:commonly:N2}に[考えられます]{かんがえられます:thought:N4}。LINEは[独自]{どくじ:proprietary:N1}に[拡張]{かくちょう:extended:N1}したRedis[運用]{うんよう:operations:N4}や、[分散]{ぶんさん:distributed:N3}KVS（HBase）の[長期]{ちょうき:long-term:N3}[利用]{りよう:use:N3}を[公表]{こうひょう:publishing:N3}しており、[役割]{やくわり:role:N3}に[応じて]{おうじて:depending on:N1}ストレージを[組み合わせて]{くみあわせて:combining:N3}いると[見られて]{みられて:seen:N5}います。\n\n#en\nInformation about \"which user is currently connected to which gateway\" changes frequently yet must be referenced every time a message is delivered. Such session information and latest-message caches are commonly thought to be held in in-memory stores like Redis. LINE is publishing about its proprietary Redis operations extensions and long-term use of distributed KVS (HBase), and is seen to combine storage by role.\n::\n\n::heading\n[地理]{ちり:geographic:N4}[分散]{ぶんさん:distribution:N3}と[拠点]{きょてん:datacenter:N1}[戦略]{せんりゃく:strategy:N2}\n\n#en\nGeographic Distribution and Datacenter Strategy\n::\n\n::para\nLINEは[日本]{にほん:Japan:N5}・[韓国]{かんこく:Korea:N2}・[台湾]{たいわん:Taiwan:N2}・[タイ]{たい:Thailand}・[インドネシア]{いんどねしあ:Indonesia}など[アジア]{あじあ:Asia}[各地]{かくち:in various places:N2}で[利用]{りよう:used:N3}されており、[各]{かく:each:N2}[地域]{ちいき:region:N2}の[利用]{りよう:user:N3}[者]{しゃ:person:N4}に[低]{てい:low:N2}[遅延]{ちえん:latency:N2}な[体験]{たいけん:experience:N4}を[提供]{ていきょう:provide:N1}するため、[複数]{ふくすう:multiple:N2}の[拠点]{きょてん:datacenters:N1}を[運用]{うんよう:operating:N4}していると[考えられます]{かんがえられます:thought:N4}。[国境]{こっきょう:cross-border:N2}を[越える]{こえる:crossing:N3}データ[転送]{てんそう:transfer:N4}は、[各]{かく:each:N2}[国]{くに:country:N5}の[データ]{でーた:data}[保護]{ほご:protection:N1}[規制]{きせい:regulations:N3}との[兼ね合い]{かねあい:balance:N1}も[必要]{ひつよう:needed:N3}になります。[一般的]{いっぱんてき:typical:N2}な[戦略]{せんりゃく:strategy:N2}としては、ユーザーの[ホーム]{ほーむ:home}[拠点]{きょてん:datacenter:N1}に[主]{しゅ:primary:N4}データを[置き]{おき:placing:N3}、[他]{た:other:N3}[地域]{ちいき:regions:N2}にはエッジキャッシュや[読み取り]{よみとり:read-only:N3}レプリカを[配置]{はいち:placing:N3}する[構成]{こうせい:configuration:N3}が[考えられます]{かんがえられます:thought:N4}。\n\n#en\nLINE is used across Asia — Japan, Korea, Taiwan, Thailand, Indonesia — and is thought to operate multiple datacenters to provide low-latency experiences to users in each region. Cross-border data transfer must also balance with each country's data protection regulations. A typical strategy is thought to be placing primary data in the user's home datacenter and edge caches or read-only replicas in other regions.\n::\n\n::callout\n[低]{てい:low:N2}[遅延]{ちえん:latency:N2}と[整合性]{せいごうせい:consistency:N1}は[一般的]{いっぱんてき:often:N2}に[トレードオフ]{とれーどおふ:trade-off}になります。チャット[配信]{はいしん:delivery:N3}は[最終]{さいしゅう:eventual:N3}[整合性]{せいごうせい:consistency:N1}を[受け入れる]{うけいれる:accept:N3}ことで[拡張性]{かくちょうせい:scalability:N1}を[確保]{かくほ:secure:N1}するのが[一般的]{いっぱんてき:common:N2}です。\n\n#en\nLow latency and consistency often trade off. It is common for chat delivery to secure scalability by accepting eventual consistency.\n::\n\n::heading\nプッシュ[通知]{つうち:notifications:N4}：APNsとFCMとの[連携]{れんけい:integration:N1}\n\n#en\nPush Notifications: Integration with APNs and FCM\n::\n\n::para\n[クライアント]{くらいあんと:client}が[切断]{せつだん:disconnected:N3}[中]{ちゅう:while:N5}や[バックグラウンド]{ばっくぐらうんど:background}[時]{じ:while:N5}には、[Apple]{あっぷる:Apple} APNs（iOS）と[Google]{ぐーぐる:Google} FCM（Android）を[経由]{けいゆ:via:N3}したプッシュ[通知]{つうち:notification:N4}が[必要]{ひつよう:needed:N3}になります。これらの[外部]{がいぶ:external:N3}プロバイダは、[独自]{どくじ:proprietary:N1}の[流量]{りゅうりょう:rate:N2}[制限]{せいげん:limits:N3}・[フォーマット]{ふぉーまっと:format}・[再送]{さいそう:retry:N2}[ポリシー]{ぽりしー:policy}を[持つ]{もつ:have:N4}ため、LINE[側]{がわ:side:N3}でも[再送]{さいそう:retry:N2}[キュー]{きゅー:queue}・[失敗]{しっぱい:failure:N3}[時]{じ:on:N5}の[フォールバック]{ふぉーるばっく:fallback}（SMSや[後追い]{あとおい:later:N3}[通知]{つうち:notification:N4}）など[多重]{たじゅう:multi-layer:N4}の[配信]{はいしん:delivery:N3}[戦略]{せんりゃく:strategy:N2}が[必要]{ひつよう:needed:N3}になります。\n\n#en\nWhile clients are disconnected or in the background, push notifications via Apple APNs (iOS) and Google FCM (Android) are required. Because these external providers have proprietary rate limits, formats, and retry policies, LINE itself also needs multi-layer delivery strategies — retry queues, fallbacks for failures (SMS or follow-up notifications), and so on.\n::\n\n::heading\n[障害]{しょうがい:failure:N1}と[復旧]{ふっきゅう:recovery:N2}\n\n#en\nFailure and Recovery\n::\n\n::para\n[即時]{そくじ:realtime:N1}[配信]{はいしん:delivery:N3}[基盤]{きばん:infrastructure:N1}では、[障害]{しょうがい:failure:N1}が[発生]{はっせい:occurred:N4}しても[サービス]{さーびす:service}を[継続]{けいぞく:continuing:N1}できる[設計]{せっけい:design:N2}が[必須]{ひっす:essential:N1}です。ゲートウェイ[クラスタ]{くらすた:cluster}は[多重]{たじゅう:multi-layered:N4}に[冗長]{じょうちょう:redundant:N1}[化]{か:-ization:N3}され、[一]{いち:one:N5}[台]{だい:node:N4}が[落ちた]{おちた:goes down:N3}[場合]{ばあい:case:N3}クライアントは[自動]{じどう:automatically:N4}[再]{さい:re-:N2}[接続]{せつぞく:connect:N2}でき、Kafkaは[複数]{ふくすう:multiple:N2}[ブローカー]{ぶろーかー:brokers}にレプリケーションし、[拠点]{きょてん:datacenter:N1}[全体]{ぜんたい:entire:N3}が[障害]{しょうがい:failure:N1}になっても[他]{た:other:N3}[拠点]{きょてん:datacenter:N1}に[切替]{きりかえ:failover:N2}できる[構成]{こうせい:configuration:N3}が[考えられます]{かんがえられます:thought:N4}。[一方]{いっぽう:on the other hand:N4}、[切替]{きりかえ:failover:N2}[時]{じ:on:N5}には[一時的]{いちじてき:temporary:N4}な[順序]{じゅんじょ:order:N1}の[逆転]{ぎゃくてん:reversal:N2}や[重複]{ちょうふく:duplicate:N2}[配信]{はいしん:delivery:N3}など、[受け入れられる]{うけいれられる:acceptable:N3}トレードオフを[事前]{じぜん:in advance:N4}に[定義]{ていぎ:define:N1}しておく[必要]{ひつよう:need:N3}があります。\n\n#en\nRealtime delivery infrastructure must be designed to keep service running even when failures occur. Gateway clusters are made multi-redundantly so clients can automatically reconnect when one node goes down; Kafka replicates across multiple brokers; and configurations are thought to be in place to fail over to other datacenters even if an entire datacenter fails. Meanwhile, acceptable trade-offs at failover — temporary order reversals, duplicate deliveries — must be defined in advance.\n::\n\n::heading\n[帯域]{たいいき:bandwidth:N2}と[圧縮]{あっしゅく:compression:N1}\n\n#en\nBandwidth and Compression\n::\n\n::para\n[数億]{すうおく:hundreds of millions:N2}の[接続]{せつぞく:connections:N2}を[抱える]{かかえる:holding:N3}と、[心拍]{しんぱく:heartbeat:N1}（keep-alive）パケット[一]{いち:one:N5}つにも[コスト]{こすと:cost}が[掛かります]{かかります:applies:N3}。プロトコル[層]{そう:layer:N2}での[圧縮]{あっしゅく:compression:N1}（ヘッダ[圧縮]{あっしゅく:compression:N1}を[含む]{ふくむ:including:N2}HTTP\u002F2や[独自]{どくじ:proprietary:N1}バイナリ[エンコーディング]{えんこーでぃんぐ:encoding}）、[心拍]{しんぱく:heartbeat:N1}[間隔]{かんかく:interval:N1}の[最適化]{さいてきか:optimization:N3}、[タイプ]{たいぷ:typing}[中]{ちゅう:while:N5}[インジケータ]{いんじけーた:indicator}・[既読]{きどく:read receipt:N1}[同期]{どうき:sync:N3}など[小さな]{ちいさな:small:N5}メッセージの[まとめ]{まとめ:bundling}[送信]{そうしん:send:N3}など、[細かい]{こまかい:fine-grained:N2}[最適化]{さいてきか:optimizations:N3}の[積み重ね]{つみかさね:accumulation:N3}が[実]{じつ:overall:N3}[サービス]{さーびす:service}コストに[直結]{ちょっけつ:directly impacts:N1}します。\n\n#en\nWith hundreds of millions of connections, even a single heartbeat (keep-alive) packet has cost. The accumulation of fine-grained optimizations — protocol-layer compression (HTTP\u002F2 with header compression or proprietary binary encodings), heartbeat-interval tuning, bundled sending of small messages like typing indicators and read-receipt sync — directly impacts overall service cost.\n::\n\n::heading\nエンドツーエンド[暗号化]{あんごうか:encryption:N3}\n\n#en\nEnd-to-End Encryption\n::\n\n::para\nLINEは「Letter Sealing」の[名]{な:name:N5}で[一]{いち:one:N5}[対]{たい:to:N3}[一]{いち:one:N5}・グループチャットの[エンドツーエンド]{えんどつーえんど:end-to-end}[暗号化]{あんごうか:encryption:N3}を[公表]{こうひょう:announced:N3}しており、[配信]{はいしん:delivery:N3}[基盤]{きばん:infrastructure:N1}は[基本的]{きほんてき:fundamentally:N1}に[暗号化]{あんごうか:encrypted:N3}された[ペイロード]{ぺいろーど:payload}を[中継]{ちゅうけい:relays:N1}するだけで、[内容]{ないよう:contents:N3}を[復号]{ふくごう:decrypt:N2}しない[設計]{せっけい:design:N2}が[採られて]{とられて:taken:N2}います。[鍵]{かぎ:key:N1}[管理]{かんり:management:N2}は[複雑]{ふくざつ:complex:N2}で、デバイス[追加]{ついか:addition:N3}・[履歴]{りれき:history:N1}の[再]{さい:re-:N2}[同期]{どうき:sync:N3}・[グループ]{ぐるーぷ:group}メンバー[変更]{へんこう:changes:N3}など[各種]{かくしゅ:various:N2}[シナリオ]{しなりお:scenarios}に[対応]{たいおう:respond:N1}する[必要]{ひつよう:need:N3}があります。\n\n#en\nLINE has announced end-to-end encryption for one-to-one and group chats under the name \"Letter Sealing,\" and the delivery infrastructure is designed to fundamentally just relay encrypted payloads without decrypting their contents. Key management is complex and must respond to various scenarios — device additions, history re-sync, group membership changes, etc.\n::\n\n::heading\nおわりに\n\n#en\nConclusion\n::\n\n::para\nLINEの[即時]{そくじ:realtime:N1}[配信]{はいしん:delivery:N3}[基盤]{きばん:infrastructure:N1}は、[長時間]{ちょうじかん:long-running:N5}[接続]{せつぞく:connections:N2}を[抱える]{かかえる:holding:N3}ゲートウェイ、Kafkaを[軸]{じく:axis:N1}とした[非同期]{ひどうき:asynchronous:N3}バックボーン、Redis／HBaseによる[ステート]{すてーと:state}[管理]{かんり:management:N2}、[地域]{ちいき:regional:N2}[分散]{ぶんさん:distribution:N3}、[エンドツーエンド]{えんどつーえんど:end-to-end}[暗号化]{あんごうか:encryption:N3}など、[複数]{ふくすう:multiple:N2}の[層]{そう:layer:N2}を[組み合わせた]{くみあわせた:combining:N3}[巨大]{きょだい:giant:N2}スタックです。「[ただ]{ただ:simply}メッセージを[届ける]{とどける:deliver:N2}」という[一]{いち:one:N5}[見]{けん:appearance:N5}[シンプル]{しんぷる:simple}な[要件]{ようけん:requirement:N3}の[裏]{うら:behind:N2}には、[膨大]{ぼうだい:vast:N1}な[エンジニアリング]{えんじにありんぐ:engineering}が[蓄積]{ちくせき:accumulated:N1}されていると[言える]{いえる:can say:N4}でしょう。\n\n#en\nLINE's realtime delivery infrastructure is a giant stack combining multiple layers — gateways holding long-running connections, an asynchronous backbone centered on Kafka, state management via Redis\u002FHBase, regional distribution, and end-to-end encryption. Vast engineering can be said to be accumulated behind the seemingly simple requirement of \"just delivering a message.\"\n::\n"]