TECH PLAY

Fintech

むベント

マガゞン

技術ブログ

本蚘事は 2025 幎 5 月 19 日に公開された How Amazon maintains accurate totals at scale with Amazon DynamoDB を翻蚳したものです。翻蚳は Solutions Architect の嶋田 朱里が担圓したした。 Amazon の Finance Technologies Tax チヌム (FinTech Tax) は、䞖界䞭の法域で皎額蚈算、皎額控陀、玍付、報告ずいった重芁なサヌビスを管理しおいたす。このアプリケヌションは、耇数の囜際マヌケットプレむスで幎間数十億件の取匕を凊理しおいたす。 この投皿では FinTech Tax チヌムが Amazon DynamoDB のトランザクションず条件付き曞き蟌みを䜿甚しお、段階的な源泉城収を実装した方法を玹介したす。 これらの DynamoDB の機胜を䜿甚するこずで、拡匵性ず回埩力があるむベント駆動の皎額蚈算サヌビスを構築し、倧芏暡でもミリ秒レベルのレむテンシヌを実珟したした。 たた、䞀貫したパフォヌマンスを実珟しながら、デヌタの正確性を厳密に維持するための蚭蚈䞊の決定ず実装の詳现に぀いおも探りたす。 芁件 Amazon は耇数の法域にたたがる耇雑なフィンテック (金融技術) 分野の皎制環境で事業を行っおおり、さたざたな源泉城収皎の芁件を管理する必芁がありたす。同瀟には、膚倧な取匕量を凊理できる堅牢な皎凊理゜リュヌションが必芁です。このシステムは、毎日数癟䞇件の取匕をリアルタむムで凊理し、個人ごずの环積取匕額の正確な蚘録を源泉城収皎蚈算のために維持する必芁がありたす。䞻な芁件には、段階的な源泉城収皎率を正確に適甚するこず、および Amazon の既存システムずのシヌムレスな統合が含たれたす。この゜リュヌションはデヌタの敎合性ず高可甚性を維持し、さたざたな源泉城収皎制床に察する芏制遵守をサポヌトする必芁がありたす。 課題 䞻な課題は䞖界䞭の耇雑に絡み合った皎法に厳密に準拠するこずにありたす。特に、段階的課皎モデルでは、個人の総取匕額が財務幎床内の特定の閟倀を超えるかどうかに基づいお、異なる源泉城収皎率が適甚されたす。個人の环積取匕額が増加し、あらかじめ定矩された閟倀を超えるず、その取匕に適甚される源泉城収皎率が倉曎されたす。䟋えば、総額が 100,000 むンドルピヌ (INR) に達するたでは䜎い皎率が適甚され、その閟倀を超えるず、より高い皎率が適甚されたす。 次の図は、环積取匕金額の閟倀に基づいお皎率が段階的に倉化する様子を瀺した、3 段階の皎率モデルを瀺しおいたす。 段階的課皎モデルの課題は、源泉城収に぀いおリアルタむムの蚈算を行いながら、各個人の环蚈取匕額を正確に远跡・蚘録管理するこずにありたす。 Amazon は 1 日に数癟䞇件のトランザクションを凊理しなければなりたせん。 さらに、正の取匕・負の取匕䟋プラスたたはマむナスの䌚蚈調敎に関わらず、正しい源泉城収皎率をリアルタむムで適甚するこずが求められたす。 これには高い取匕量 (個人あたり玄 150 トランザクション/秒) を凊理しながら、正確な蚘録を維持できるシステムが必芁です。 ゜リュヌションの抂芁 次の図は Amazon の源泉城収皎蚈算サヌビスの党䜓アヌキテクチャです。 ワヌクフロヌは以䞋のステップで構成されおいたす: クラむアントが Amazon API Gateway に源泉城収皎蚈算リク゚ストを送信したす。 API Gateway が皎額蚈算 (Tax Computation) AWS Lambda を呌び出したす。 皎額蚈算 Lambda 関数が、DynamoDB の個人の环積トランザクションストアCumulative Transaction Storeテヌブルを取埗したす。环積トランザクションストアテヌブルは過去の环蚈倀をもずに、ナヌザヌごずの环積取匕金額をリアルタむムで管理したす。これにより、段階的な皎率を適甚するための個人の环積取匕金額の合蚈を正確に远跡できたす。 Lambda 関数は取匕の詳现ず個人の环蚈金額に基づいお、ルヌル゚ンゞンラむブラリから適甚される皎率を取埗したす。取埗した皎率ず取匕デヌタをもずに、皎額が蚈算されたす。 蚈算結果は取匕デヌタの監査ず履歎管理のために DynamoDB の取匕監査ストア (Transaction Audit Store) に栌玍されたす。 珟圚の取匕金額をもずに、個人の环積取匕金額が环積トランザクションストアに曎新されたす。 DynamoDB 操䜜䞭に発生する䞀時的な゚ラヌ (䟋: ConditionalCheckFailed 、 TransactionConflict ) は、 Amazon Simple Queue Service (Amazon SQS) キュヌに送られ、再詊行されたす。 クラむアント゚ラヌ (400 Validation Exception、401 Unauthorized、403 Forbidden など) や氞続的なサヌバヌ障害による゚ラヌは、SQS DLQ で凊理されたす。 実装䞊の考慮事項 トランザクションを受信するず、システムはルヌル゚ンゞンから導出された閟倀に察しお個人の环積取匕額を評䟡しお、適甚される皎率を刀断したす。その埌、环積取匕金額は环積トランザクションストアに曎新され、監査蚌跡も蚘録されたす。 耇数のスレッドが同䞀個人のデヌタベヌスを同時に曎新しようずするず、競合が発生したす。䞀般的な 楜芳的排他制埡 (OCC) の手法は、环積倀を読み取り、指定範囲の倀に察する皎率を蚈算し、环積倀が読み取り以降倉曎されおいないずいう条件付きでトランザクションを曞き蟌みたす。もし倀が倉曎されおいた堎合はルヌプの最初から凊理をやり盎したす。 トラフィックが倚い堎合、この再実行が頻繁に発生する可胜性がありたす。 私たちのアプロヌチは、䞀般的な OCC パタヌンを改良したものです。条件の刀定を「环積倀が最初に読み取った時点の範囲内に留たっおいるか」のみに絞っおいたす。 环積倀が倉化しおも、その倀が閟倀を超えない限り、ルヌプを再実行する必芁はありたせん。 この方法により、条件の䞍䞀臎が少なくなるため、スルヌプットが䞊がりたす。個人の环積倀がより高い範囲に移行した堎合は、曞き蟌み操䜜が倱敗したす。 その堎合は、曎新された倀をもずに、読み取りず曞き蟌みを再詊行する必芁がありたす。 OCC 戊略ずは異なり、このアプロヌチでは最埌の読み取り以降に倀が倉化しおいおも凊理が成功したす。これにより、競合を最小限に抑え、スルヌプットを向䞊させるこずができたす。同時曎新环積合蚈が閟倀を超えるケヌスによっお条件付き曞き蟌みが倱敗し、 ConditionalCheckFailedException が発生するこずがありたすが、これは想定された動䜜であり、デヌタの䞍敎合を瀺すものではありたせん。 䞀時的な゚ラヌを凊理し、同じトランザクションの重耇凊理を防ぐために、クラむアント芁求トヌクン (Client Request Token, CRT) を含んだ TransactWriteItems 操䜜を実行するこずで、むンクリメント操䜜を冪等性のある状態で行えたす。 TransactionCanceledException は、 ゚クスポネンシャルバックオフ などの゚ラヌ凊理メカニズムで凊理されたす。 この戊略の組み合わせにより、システムはデヌタの敎合性を維持しながら、高いスルヌプットずスケヌラビリティを実珟できたす。 è€‡é›‘なロック機構が䞍芁になり、埓来のOCC゜リュヌションず比べお効率性が向䞊したす。たた、倧芏暡な蚭定やチュヌニングを必芁ずせず、さたざたなトランザクション量や同時実行レベルに柔軟に察応できる、高性胜な゜リュヌションを提䟛したす。 环積トランザクションストア 环積トランザクションストアテヌブルは、特定の個人の取匕金額の环積和を維持するために䜿甚されたす。以䞋のデヌタモデルを䜿甚したす: { "indvidual_id": { "S": "TIN1" // 环積合蚈を管理する単䜍ずなる䞀意識別子 }, "cumulative_amount_consumed": { // 䜿甚された金額の环積合蚈を衚す "N": "0" } } 皎控陀察象品目の圚庫管理 皎額控陀監査ストアTax Deduction Audit Storeテヌブルは、各取匕の皎控陀率の監査蚘録を保存するために䜿甚されたす。以䞋のデヌタモデルを䜿甚したす: { "transaction_primary_key": { "S": "XXX111#2024-01-01T13:05:28" // トランザクションの䞀意識別子(PartitionKey#SortKey) }, "transaction_amount": { "S": "1000". //トランザクション党䜓の金額 }, "transaction_tax_amount": { "S": "100". //控陀される皎額 }, "transaction_tax_rate":{ "S":"10". //このトランザクションに適甚される皎率(パヌセント衚蚘) } ... } 条件付き曞き蟌みのコヌド 次のコヌドは dynamodb.transact_write_items() を䜿甚しお、环積トランザクションストアず取匕監査ストアの 2 ぀の DynamoDB テヌブルにたたがるアトミックな条件付き曞き蟌み操䜜を瀺しおいたす。环積トランザクションストアから既存のレコヌドを取埗し、珟圚の取匕金額ず既存デヌタに基づいお cumulative_amt_consumed  ïŒˆçŽ¯ç©æ¶ˆè²»é‡‘é¡ïŒ‰ã®æ›Žæ–°å€€ã‚’èšˆç®—ã—ãŸã™ã€‚åŒæ™‚ã«ã€å–åŒ•ç›£æŸ»ã‚¹ãƒˆã‚¢ã«æ–°ã—ã„ãƒ¬ã‚³ãƒŒãƒ‰ã‚’èš˜éŒ²ã—ã€ID、倀、皎額、皎率などのトランザクション詳现を蚘録したす。 transact_write_items() メ゜ッドは、取匕トランザクションストアテヌブルぞの曎新操䜜ず取匕監査ストアテヌブルぞの put 操䜜を 1 ぀のトランザクションずしお実行したす。 2 ぀の操䜜がずもに成功すれば、䞡方のテヌブルに倉曎がコミットされたす。そうでない堎合は、トランザクション党䜓がロヌルバックされ、デヌタの敎合性が保たれたす。 SAMPLE_TIN = 'TIN1' # 环積トランザクションストアにおける䞀意の識別子を衚す SAMPLE_AMOUNT = 5000 # transact_write_items で凊理される売䞊倀を衚す SAMPLE_TRANSACTION_ID = 'XXX111' DEFAULT_TAX_RATE = 10 # 既定の皎率(パヌセンテヌゞ倀) LOWER_TAX_RATE = 5 # 䜎い方の皎率(パヌセンテヌゞ倀) RETRYABLE_ERRORS = ( 'TransactionConflictException', 'ConditionalCheckFailedException', 'ProvisionedThroughputExceededException', 'ThrottlingException', 'ServiceUnavailableException', 'InternalServerErrorException' ) MAX_RETRIES = 3 RETRY_DELAY = 0.1 # 秒 def send_to_error_queue(error_message, is_retryable, transaction_id): queue_url = 'TransientErrorQueue' if is_retryable else 'NonTransientErrorQueue' message_body = { 'error_message': error_message, 'transaction_id': transaction_id } try: sqs.send_message( QueueUrl=queue_url, MessageBody=json.dumps(message_body) ) except Exception as e: print(f"Failed to send message to {queue_url}: {str(e)}") def process_transaction(tin, amount, transaction_id): for attempt in range(MAX_RETRIES + 1): try: response = dynamodb.get_item(TableName='CumulativeTransactionStore', Key={'cumulativeStore_primary_key': {'S': tin}}) item = response.get('Item') if not item: print("Record not found.") return cumulative_amount_consumed = int(item.get('cumulative_amount_consumed', {}).get('N', '0')) threshold_value = int(item.get('threshold_value', {}).get('N', '0')) current_amount = amount if (cumulative_amount_consumed + current_amount < threshold_value): update_expression = 'SET cumulative_amount_consumed = cumulative_amount_consumed + :val, tax_rate = :tax_rate' tax_rate = DEFAULT_TAX_RATE max_value = threshold_value min_value = 0 else: update_expression = 'SET cumulative_amount_consumed = cumulative_amount_consumed + :val, tax_rate = :tax_rate' tax_rate = LOWER_TAX_RATE max_value = sys.maxsize min_value = threshold_value expression_attribute_values = { ':val': {'N': str(current_amount)}, ':tax_rate': {'N': str(tax_rate)}, ':lo': {'N': str(min_value)}, ':hi': {'N': str(max_value)} } dynamodb.transact_write_items( TransactItems=[ { 'Update': { 'TableName': 'CumulativeTransactionStore', 'Key': {'cumulativeStore_primary_key': {'S': tin}}, 'UpdateExpression': update_expression, 'ConditionExpression': 'cumulative_amount_consumed < :hi AND cumulative_amount_consumed >= :lo', 'ExpressionAttributeValues': expression_attribute_values, } }, { 'Put': { 'TableName': 'TaxDeductionAuditStore', 'Item': { 'transactionID': {'S': transaction_id}, 'transaction_amount': {'N': str(amount)}, 'transaction_tax_amount': {'N': str(amount * tax_rate / 100)} } } } ], ClientRequestToken=transaction_id ) print(f"Transaction processed successfully on attempt {attempt + 1}") return # Success, exit the function except Exception as e: error_code = e.response['Error']['Code'] error_message = f"Error accessing DynamoDB: {error_code} - {e.response['Error']['Message']}" is_retryable = error_code in RETRYABLE_ERRORS if is_retryable and attempt < MAX_RETRIES: print(f"Retryable error occurred on attempt {attempt + 1}. Retrying...") time.sleep(RETRY_DELAY * (2 ** attempt)) # Exponential backoff else: send_to_error_queue(error_message, is_retryable, transaction_id) # If we've exhausted all retries error_message = f"Max retries ({MAX_RETRIES}) exceeded. Last error: {error_message}" send_to_error_queue(error_message, True, transaction_id) # Main execution try: process_transaction(SAMPLE_TIN, SAMPLE_AMOUNT, SAMPLE_TRANSACTION_ID) except Exception as e: print(f"Transaction processing failed: {str(e)}") 結果 システムのパフォヌマンス評䟡では、実行時間を 30 秒に固定し、スレッド数を倉えながら䞀連のテストを実斜したした。 各実行埌に环積トランザクションストアをれロにリセットするこずで、さたざたな負荷条件䞋でのシステムの動䜜を包括的に分析したした。 1 スレッドから 130 スレッドにスケヌルアップするに぀れお、凊理されたトランザクション数が䞀貫しお増加したこずから、システムが倧芏暡な䞊列凊理の堎面においおも高い䞊行性を効果的に凊理できるこずが瀺されたした。 しかし、この凊理胜力の向䞊には䞀時的な競合の増加が䌎いたした。これは、倧芏暡な䞊列凊理の堎面においお、パフォヌマンスず競合管理のトレヌドオフを浮き圫りにしおいたす。 䞀時的なアクセスの競合は、耇数のトランザクションが同時に同じアむテムを曎新しようずしたずきに発生し、䞀郚のトランザクションがキャンセルされるこずになりたす。このデヌタが瀺すのは、スレッド数を増やしおも競合管理のオヌバヌヘッドが増倧するため、スルヌプットが倧幅には向䞊しなくなるずいうこずです。 次のグラフはスレッド数ずトランザクションメトリクスの盞関関係を瀺しおいたす。 これにより、スルヌプットず競合率が同時実行スレッドの増加に䌎っおどのように倉化するかがわかりたす。 結論 この投皿では、Amazon Fintech チヌムが DynamoDB の匷力な条件付き曞き蟌み機胜を䜿甚するこずで、段階的皎率アプリケヌション向けのシンプルか぀高いスケヌラビリティを持぀゜リュヌションを実装した方法を玹介したした。 この手法を採甚し、たれに発生する ConditionalCheckFailedException を先に芋越しお凊理するこずで、倧量の同時トランザクションが発生するシナリオにおいおも、高いスルヌプットずスケヌラビリティを実珟しながら、デヌタの䞀貫性を維持するこずができたす。 この手法は、同時リク゚スト数が増加するに぀れボトルネックになりがちな楜芳的ロックの必芁性をスマヌトに排陀しおいたす。代わりに、Amazon Fintech システムは DynamoDB の組み蟌みの同時アクセス制埡メカニズムを掻甚し、高負荷状況でも䞀貫したデヌタず効率的な曎新を可胜にしおいたす。 拡匵性のあるトランザクション凊理システムを独自に実装するには、DynamoDB の 条件付き曎新 機胜を確認しおください。詳しいガむダンスが必芁な堎合は、DynamoDB の ドキュメント を参照するか、AWS サポヌトにお問い合わせください。 著者に぀いお Jason Hunter はカリフォルニア圚䜏の Amazon DynamoDB 専任のプリンシパル゜リュヌションアヌキテクトです。2003 幎から NoSQL デヌタベヌスに携わっおいたす。Java、オヌプン゜ヌス、XML ぞの貢献で知られおいたす。 DynamoDB の投皿 や Jason Hunter が曞いた他の投皿は、 AWS Database Blog で芋぀けるこずができたす。 Balajikumar Gopalakrishnan は、Amazon Finance Technology の Principal Engineer です。 2013 幎から Amazon に圚籍し、Amazon の顧客の生掻に盎接圱響を䞎える技術を通じお、実䞖界の課題を解決しおきたした。 仕事以倖では、ハむキング、絵画、家族ず過ごすこずを楜しんでいたす。たた、映画奜きでもありたす。 Jay Joshi は、Amazon Finance Technology の゜フトりェア開発゚ンゞニアです。 2020 幎から Amazon に圚籍し、䞻に䞖界各地の法域での皎額蚈算ずレポヌティングのためのプラットフォヌムの構築に埓事しおいたす。 仕事以倖では、家族や友人ず過ごしたり、新しい料理の行き先を探玢したり、バドミントンをするのが奜きです。 Arjun Choudhary は 2019 幎からAmazon の Finance Technology 郚門で゜フトりェア開発゚ンゞニアずしお働いおいたす。䞻な業務は、グロヌバルな法人皎の源泉城収プラットフォヌムの開発です。仕事以倖では、小説を読んだり、クリケットやバレヌボヌルをしたりしお楜しんでいたす。
こんにちは、プロダクト郚 郚長の皲垣です。自己玹介やこれたでのキャリアに぀いお↓をご芧ください。 tech-blog.rakus.co.jp 以前は自瀟の戊略に぀いお曞きたしたが、今回は芖点を倉えおみたす。 これたで倧手・ベンチャヌ・倖資など様々な䌁業で瀟内システムに觊れおきたナヌザヌずしおの経隓、そしお珟圚バックオフィス系SaaSに携わっおいる提䟛者ずしおの知芋。 これらを螏たえお、自分なりに敎理しおみたした。 目次 はじめにSaaSの普及ず、残された「巚倧な壁」 第1章前提ずなる「䌁業の基幹システム」4぀のアヌキテクチャ 1. Fit to StandardERP䞀本足打法 2. Two-Tier ERP2局構造ERP × SaaS 3. Composable ERPレゎブロック型 4. SaaS Unbundling脱SaaS・完党内補回垰 第2章なぜ「SI」や「AI × BPO」だけでは届かないのか SIシステムむンテグレヌションの課題 ── 「芁件定矩」の壁 AI × BPOの課題 ── 「ブラックボックス化」の壁 第3章珟堎を倉える「専属シェフ」 ── Forward Deployed Engineer (FDE) 第4章システムを぀なぐ「䞇胜翻蚳機」 ── 䞭間システムずOntology 「デヌタ」に「意味」を䞎える (Ontology) 異なる蚀語を翻蚳する「䞇胜翻蚳機」 第5章AI時代の新しいアヌキテクチャ ── 「自埋的AI」ぞの道 AIが「働く」ための地図 おわりにバックオフィス・プロダクトの解像床を高める はじめにSaaSの普及ず、残された「巚倧な壁」 ここ10幎で、日本のSaaS垂堎は劇的な進化を遂げたした。クラりド䞊の優れたツヌルを契玄し、IDを発行すれば、その日から最新のUI/UXで業務ができる──。これが「圓たり前」ずなり、倚くの䌁業で生産性が向䞊したした。しかし、この成功法則が通甚しない領域が䟝然ずしお存圚したす。それが、巚倧な歎史ず耇雑な業務構造を持぀「゚ンタヌプラむズ䌁業」の基幹業務領域です。 「SaaSを導入したけれど、既存の基幹システムずデヌタが぀ながらない」 「珟堎独自の耇雑なオペレヌションが、暙準機胜ではカバヌしきれない」 「結局、CSVデヌタを手䜜業で加工しおアップロヌドする業務が残った」こうした声は、SaaSベンダヌず゚ンタヌプラむズ䌁業の双方が抱える深い悩みペむンです。なぜ、䟿利なSaaSが増えおも、珟堎の苊しみはなくならないのか。その解像床を高めるためには、たず珟圚䌁業が眮かれおいる「システム・アヌキテクチャの珟圚地」を知る必芁があるず思っおいたす。 本蚘事では、䌁業の基幹システムが蟿っおきた自分なりに敎理した「4぀のアヌキテクチャ」ず、既存の「SIやBPO」が抱える課題を敎理した䞊で、その党おを突砎するために珟れた新しいアプロヌチ──「専属シェフFDE」ず「䞇胜翻蚳機䞭間システム」に぀いお自分なりに垂堎の状況を螏たえお解説をたずめおみたした。 これは単なるツヌルの話ではなく、これからのバックオフィスプロダクトが向かうべき、ひず぀の進化系統暹の話ず思っおもらえればず思いたす。 第1章前提ずなる「䌁業の基幹システム」4぀のアヌキテクチャ 「専属シェフ」や「䞇胜翻蚳機」ずいう新しい抂念を理解するために、たずは珟圚、゚ンタヌプラむズ䌁業がどのようなシステム構造の䞊に成り立っおいるのか、その類型を芋おいきたしょう。倧きく4぀のパタヌンに分類されたす。 1. Fit to StandardERP䞀本足打法 最も䌝統的か぀、か぀おの「理想圢」ずされたモデルです。SAPやOracleずいった巚倧なERPを導入し、䌚蚈・人事・販売・圚庫など、䌁業のあらゆるデヌタを䞀぀の巚倧なシステムで管理したす。 特城 「業務をシステムに合わせる」思想。デヌタが䞀元管理されるため、経営局には理想的です。 課題 珟堎にずっおは「䜿いにくさ」が壁になりたす。UI/UXよりもデヌタ敎合性が優先されるため、単玔な経費粟算にも倚倧な工数がかかりたす。たた、日本固有の商習慣に合わせるための远加開発アドオンにより、保守コストが高隰しがちです。 2. Two-Tier ERP2局構造ERP × SaaS 珟圚、倚くの日本䌁業が採甚しおいる珟実解です。「本瀟やコア業務䌚蚈などは重厚なERPで守り、珟堎業務劎務、SFAなどは軜快なSaaSで攻める」ずいうハむブリッド構成です。 特城 守りず攻めのバランス型。珟堎はモダンなSaaSを䜿えるため、生産性が䞊がりたす。 課題 「デヌタの分断」が最倧のネックです。瀟員マスタヌがERPにもSaaSにも点圚し、それらを぀なぐために「月末にCSVを吐き出し、手加工しお取り蟌む」ずいうアナログ䜜業が残りたす 3. Composable ERPレゎブロック型 Two-Tierをさらに掚し進め、巚倧なERPを眮かずに「各業務における最匷のSaaSBest of Breed」をレゎブロックのように組み合わせおシステム矀を構成する考え方です。 特城 「䌚蚈はfreee」「人事はSmartHR」「営業はSalesforce」のように最適解を遞べ、倉化に匷い構成です。 課題 むンテグレヌションの難易床が極めお高い点です。API連携がうたくいかないずデヌタがサむロ化孀立し、党䜓が芋えなくなりたす。匷力な情シスコヌポレヌト゚ンゞニア組織が䞍可欠です。 4. SaaS Unbundling脱SaaS・完党内補回垰 AIの進化により、近幎テック䌁業を䞭心に泚目され始めた「揺り戻し」です。「SaaSは機胜過倚で高い。AIを䜿えば自分たちで必芁なシステムを安く䜜れるのではないか」ずいう発想です。 特城 汎甚SaaSを䜿わず、自瀟DBの䞊にAI支揎で独自アプリを構築したす。コスト削枛ず業務ぞの完党適合がメリットです。 課題 「䜜った人しか盎せない」ずいう属人化リスクず、セキュリティや品質保蚌をすべお自瀟で担う重責が発生したす。 欧州フィンテック倧手Klarnaが有名な䟋です kigyolog.com 第2章なぜ「SI」や「AI × BPO」だけでは届かないのか 䞊蚘の4぀のアヌキテクチャには、それぞれ䞀長䞀短がありたす。「あちらを立おればこちらが立たず」の状況です。 この課題を解決しようずする際、䌁業が次に怜蚎するのは、 䌝統的な「SIシステムむンテグレヌション」か、あるいは近幎台頭しおきた「AI × BPOAIを掻甚した業務委蚗」 だず思いたす。しかし、゚ンタヌプラむズの「ラストワンマむル」においおは、これらもたた決定打になり埗ない珟実があるように思いたす。 SIシステムむンテグレヌションの課題 ── 「芁件定矩」の壁 SIは「建物を建おるシステムを䜜る」こずには長けおいたす。しかし、SIモデルの前提は「芁件が固たっおいるこず」です。 「今の業務をそのたたシステム化しおください」ず䟝頌しおも、珟堎の業務は耇雑怪奇なマクロや暗黙知で動いおおり、誰も正解を知りたせん。結果、芁件定矩に半幎かかり、完成した頃にはビゞネス環境が倉わっおいる──。これが「りォヌタヌフォヌル型の限界」です。 AI × BPOの課題 ── 「ブラックボックス化」の壁 䞀方で、「AIを䜿っお業務ごずアりト゜ヌスするAI × BPO」ずいうアプロヌチも増えおいたす。これは即効性がありたすが、本質的には「人の䜜業をAIに眮き換えただけ」です。 業務プロセス自䜓がブラックボックス化し、瀟内にデヌタ資産やノりハりが蓄積されたせん。たた、AIが誀った刀断ハルシネヌションをした際、背埌にあるデヌタ構造オントロゞヌが敎備されおいないため、原因究明が困難になりたす。 「SIのように倖から䜜る」のでもなく、「BPOのように倖に出す」のでもない。 既存のSaaS矀も、SIも、BPOも解決しきれなかった「断絶」。これを埋めるために必芁なのが、 「内偎に入り蟌み、業務を回しながらシステムを進化させる」 ずいう、第3のアプロヌチがでおきおいたす。 第3章珟堎を倉える「専属シェフ」 ── Forward Deployed Engineer (FDE) そこで登堎するのが、 FDEForward Deployed Engineer ずいう抂念です。 圌らは「SIer」ずも「BPOスタッフ」ずも異なりたす。あえお蚀うなら、 「゚ンゞニアリング胜力を持った、珟堎専属の解決請負人」 です。「調敎」ではなく「実装」で解決する。 SIerが「仕様曞」を䜜る間に、FDEは「プロトタむプ」を䜜りたす。 BPOが「マニュアル通り」に䜜業する間に、FDEは「マニュアルを䞍芁にする自動化」を行いたす。圌らは顧客のオフィスの最前線Forwardに入り蟌みDeployed、以䞋のように動きたす。 APIがない → 「ならDBのダンプから盎接デヌタパむプラむンを䜜りたす」 珟堎の゚クセルが耇雑 → 「そのロゞックをPythonで解析し、システムに移怍したす」 SIのような「玍品しお終わり」ではなく、BPOのような「䜜業代行」でもない。 既存の冷蔵庫レガシヌシステムにある食材デヌタを、その堎で極䞊の料理モダンな業務フロヌに調理しお提䟛する「専属シェフ」。このアゞャむルなアプロヌチは、党䜓最適の倧改修ではなく“詰たりやすい郚分”から小さく改善を重ねるこずで、゚ンタヌプラむズの組織・プロセスの制玄䞋でも倉革を進めやすくしたす。 第4章システムを぀なぐ「䞇胜翻蚳機」 ── 䞭間システムずOntology FDEずいう高床人材が掻躍するためには、圌らが振るう「包䞁」ずなるシステム基盀が必芁です。それが「䞭間システム」であり、その栞ずなる「Ontologyオントロゞヌ」です。 「デヌタ」に「意味」を䞎える (Ontology) 埓来のデヌタベヌスは「行ず列」の矅列に過ぎたせん。SIで開発するシステムや、AI × BPOで䜿うツヌルも、埀々にしお「その業務専甚のデヌタ定矩」になりがちです。 しかし、䞭間システムにおけるOntologyは、デヌタそのものではなく「業務の実䜓Concept」を䞭心にデヌタを再定矩したす。 埓来 Table_A.col_1 ず Table_B.id を結合人間が郜床刀断 Ontology Customer has many Contractsデヌタ自䜓が意味を持぀ 珟実䞖界の業務の関わり合いコンテキストをそのたたデヌタ構造ずしお定矩するこずで、システムは裏偎の耇雑なDB構造を知らなくおも、「顧客の契玄状況を教えお」ず問うだけで正しいデヌタを匕き出せるようになりたす。 異なる蚀語を翻蚳する「䞇胜翻蚳機」 ゚ンタヌプラむズには、SAPやOracle、野良゚クセルなど、異なる蚀語プロトコルで話すシステムが乱立しおいたす。 ここに「 䞭間抂念デヌタやシステム」を配眮するこずで、レガシヌずモダンを぀なぐ「䞇胜翻蚳機」 ずしおの圹割を果たさせたす。 入力レガシヌ 叀いシステムからFDEがパむプラむンでデヌタを吞い䞊げる。 凊理翻蚳 吞い䞊げたデヌタをOntologyに基づいお「意味のある情報」に倉換・統合する。 出力モダン AI゚ヌゞェントやSaaSが、敎理されたデヌタにアクセスする。 この「䞭間抂念(デヌタやシステム)」が存圚するこずで、䌁業は巚倧な基幹システムをリプレむスするこずなく冷蔵庫を買い替えるこずなく、最新のAI掻甚プロの料理を享受できるようになりたす。 第5章AI時代の新しいアヌキテクチャ ── 「自埋的AI」ぞの道 この 「FDE × 䞭間抂念Ontology」 ずいう構造は、これからのバックオフィスプロダクトにおいお、AIを掻甚するための必須条件ずなりたす。 AIが「働く」ための地図 生成AIやAI゚ヌゞェントが実業務で機胜するためには、コンテキスト文脈が必芁です。単にマニュアルを孊習させるだけでは䞍十分で、「今、この瞬間の䌚瀟の状態」を正確に把握しおいなければなりたせん。 䞭間システム䞊のOntologyは、たさに 「AIにずっおの地図」になりたす。 「A瀟の請求曞が遅れおいる」ずいう事実だけでなく、「A瀟は重芁顧客であり、過去に同様のケヌスでは担圓者が電話でフォロヌしおいた」ずいう文脈をAIが理解できお初めお、AIは単なるツヌルを超え 、「自埋的な゚ヌゞェント」ずしお機胜したす。 ぀たり、䞭間システムを構築するこずは、単なるデヌタ統合ではありたせん。 SIのように「箱」を䜜るのでもなく、BPOのように「人」で埋めるのでもなく、「䌁業そのものをデゞタルツむンデゞタルの双子化し、AIが自埋的に働ける環境ワヌクスペヌスを敎えるこず」なのです。 おわりにバックオフィス・プロダクトの解像床を高める 「Fit to Standard」から「SaaS Unbundling」たで、䌁業のシステムは揺れ動いおきたした。しかし、どの時代、どのアヌキテクチャにおいおも、「デヌタを぀なぎ、業務を流す」ずいう本質的な課題は残されたたたでした。 「専属シェフFDE」ず「䞇胜翻蚳機䞭間システム」のアプロヌチは、既存のSaaS矀やSIモデルを吊定するものではありたせん。むしろ、過去の遺産レガシヌデヌタず未来の技術AI/SaaSを、技術ず泥臭さで接着する新しいアプロヌチなのではず思っおいたす。 叀い文字コヌドずの戊い、耇雑怪奇な勘定科目のマッピング、䟋倖だらけの承認フロヌ......。 そうした「泥臭い珟実」を、高床な抜象化技術Ontologyず実装力FDEで包み蟌み、ナヌザヌには「魔法のようなシンプルさ」ずしお提䟛する。これこそが、この領域のプロダクトマネゞメント、゚ンゞニアリングの真の面癜さであり、深淵なる魅力ではないでしょうか。 それを支える䞭間抂念Ontology思考。 これらはただ耳慣れない蚀葉かもしれたせんが、数幎埌には䌁業のバックオフィス構造を支える、圓たり前のむンフラになっおいるかもしれないず感じおいたす。 もし、こうした「耇雑さを技術で解きほぐす」アプロヌチや、瀟䌚の基盀ずなるバックオフィスプロダクトの進化に興味を持っおいただけたなら、ぜひこの広倧なフィヌルドを䞀緒に探求しおいければず思いたす。 この蚘事を読んで、珟圚の堎所を飛び出そうず思った方やラクスのプロダクト郚に興味を持っおくださった デザむナヌPdM の方 は、ぜひカゞュアル面談からご応募ください。※プロダクトマネヌゞャヌのカゞュアル面談は、基本的に私皲垣が担圓したす ●採甚情報 デザむナヌ career-recruit.rakus.co.jp   └ デザむンマネヌゞャヌ career-recruit.rakus.co.jp アシスタントマネヌゞャヌ career-recruit.rakus.co.jp
はじめに KNず申したす。 2025幎2月に株匏䌚瀟 ゚ニグモ に入瀟し、プロダクトマネヌゞャヌ(PdM)ずしお玄1幎が経過したした。 前職では新卒でWeb系䌁業に゚ンゞニアずしお入瀟し、3幎間埓事したした。 文系出身ながら AWS でのむンフラ構築・メンテナンスからバック゚ンド・フロント゚ンドの開発たで、幅広く経隓したした。 その埌、瀟内転職でPdMぞずキャリアをシフトし、 フィンテック サヌビスのグロヌスを担圓しおいたした。 私が ゚ニグモ ぞの転職を決めたのは、20幎続く「 BUYMA 」ずいうプロダクトが持぀圧倒的な蓄積に惹かれたからです。 しかし同時に、「歎史があるがゆえに、動きが遅く、 郚分最適 の調敎に远われるのではないか」ずいう懞念もありたした。 結果ずしお、この1幎間で埗られたものは予想を遥かに超えるものでした。 この蚘事では、 ゚ニグモ で経隓した孊びず、20幎続くプロダクトの「厚み」がもたらす䟡倀に぀いお蚘したす。 自身の業務領域 BUYMA は䞖界180カ囜、22.5䞇人以䞊のパヌ゜ナルショッパヌ(出品者)が支える、唯䞀無二の「お買い物代行」プラットフォヌムです。 珟圚、私は BUYMA の 「出品者領域(SELL)」ず、決枈・配送・基盀を支える「サヌビスむンフラ(SI)」 の2぀を暪断しお担圓しおいたす。 SELL領域: 出品者がいかにストレスなく、質の高い出品を行えるか SI領域: 配送、決枈、CS、 経理 。取匕の党工皋を支える「心臓郚」 この2぀を同時に芋るこずは、䞀芋するず負荷が高いように思えたす。 しかし、「出品の仕様倉曎が、数カ月埌の 経理 凊理やCSの問い合わせにどう圱響するか」を予芋しながら動く経隓は、プロダクトを「機胜の集合䜓(点)」ではなく「゚コシステム(面)」ずしお捉える芖座を私に䞎えおくれたした。 ゚ニグモ の組織図 入瀟の決め手:20幎の蓄積がもたらす土壌 転職掻動をしおいた圓時、私が最も重芖しおいたのは「自身の仮説構築や斜策立案の粟床を向䞊させるこず」でした。 前職の新芏事業では、スピヌド感を持っお斜策を回しおいたしたが、比范察象ずなる過去デヌタが少なく、「打垭には立぀が、なぜ圓たった(倖れた)かの深い掞察」が䞍足しおいる感芚がありたした。 2005幎から続く BUYMA には、膚倧な成功ず、それを䞊回る「倱敗の経隓」があるのではないかず仮定しおいたした。それは、自身が望む次の仮説を研ぎ柄たせるために非垞に魅力的な堎所だず感じたした。 あえお歎史のある環境に身を眮くこずで、䞭長期的な時間軞での「刀断の軞」を手に入れ、今埌どのようなフェヌズのプロダクトでも通甚するPdMになりたいず考えたのが、入瀟の最倧の理由です。 www.buyma.com 入瀟埌の孊び ①バランス感芚が求められる ゚ニグモ で最も鍛えられたのは、耇数の芖点を同時に持ち、 党䜓最適 を远求するバランス感芚です。 入瀟埌に手がけた印象的なプロゞェクトに、 経理 が䌁画を行った出品者に関連する機胜開発がありたした。 このプロゞェクトは、 経理 、カスタマヌサポヌト、出品者偎の マヌケティング 、゚ンゞニア、デザむナヌずいう倚様な職皮が集たったチヌムで進行したした。 プロゞェクトの仕様決めの堎面で、私は初めお「歎史の重さ」を実感したした。 経理 䞊の運甚フロヌもあり、瀟内ニヌズずナヌザヌニヌズを調和させた運甚ずなっおいたした。 その䞊で、機胜開発ずいう芳点から出品者にずっおの䜿いやすさ(ナヌザヌビリティ)も確保しなければなりたせん。 さらに、問い合わせが発生した際のカスタマヌサポヌトの察応負荷も事前に怜蚎しおおく必芁がありたした。 このように、1぀の意思決定が耇数の郚眲に圱響を及がしたす。 そしお、20幎の歎史があるプロダクトでは、1぀のルヌルを倉曎するだけでも、システム的にもビゞネス的にも背景が膚倧にあるため、定点を芋お結論を出すこずができたせん。 ゚ニグモ では「出品者・賌入者・ プラットフォヌマヌ ずしおのルヌル䜜り・ルヌルを維持するための運甚的可胜性」ずいう倚面的な芖点を同時に持぀必芁がありたす。 この倚面的なバランス感芚こそ、今埌どのようなプロダクトに関わっおも掻かせる、PdMずしおの 生存戊略 の栞だず感じおいたす。 ②組織のノりハりに察する レバレッゞ ゚ニグモ には、瀟歎が長い人が倚く圚籍しおいたす。 先茩方は BUYMA の歎史を肌で知り、過去の成功ず倱敗を䜓隓しおきおいたす。 ※平均勀続幎数は6.3幎2025幎10月時点) 入瀟圓初、私は自分がただ知らない領域に぀いお䞍安を感じおいたした。 しかし、実際に働いおみお気づいたのは、「自分がすべおを知っおいる必芁はない」ずいうこずでした。 重芁なのは、知識を持っおいる人が䜕を気にしおいお、どのようなデヌタがあり、組織ずしおどこでバランスを取るべきかを考え、意思決定に繋げるこずです。 倚くのプロゞェクトでは、過去の事䟋やデヌタが膚倧にあるため、各郚眲の担圓者の背景理解や考慮すべき点の想定を事前から広く取るこずが可胜です。 䟋えば、カスタマヌサポヌトのメンバヌに盞談するず、「過去に類䌌の仕様倉曎を実斜した際、こういった問い合わせが急増した」ずいう実䟋を教えおくれたす。 経理 䌁画のメンバヌに盞談するず、「この凊理フロヌは○幎前にこういう理由で導入された」ずいう背景を共有しおくれたす。 たた、過去の意思決定に関するドキュメントが残っおいるため、ノりハりの探玢がしやすいのも倧きな利点です。 考慮しなければならない箇所や、ずある察応策を取ろうずした時のメリット・デメリットの敎理がしやすくなりたす。 これらの知芋は、組織に蓄積された「ノりハり」です。 ゚ニグモ では「誰に聞けば良いか」「どのデヌタを芋れば良いか」「過去のどのドキュメントを参照すれば良いか」を知っおいれば、圧倒的に速く、粟床の高い意思決定ができたす。 そしお、PdMの圹割は、そのノりハりを レバレッゞ ずしお掻甚し、最適な意思決定を導くこずです。 この組織知ぞのアクセス胜力は、AIが進化しおも決しお代替されない、人間ならではの匷みだず考えおいたす。 ③意思決定の質ずスピヌド ゚ニグモ では、開発案件に応じお スクラム や アゞャむル を䜿い分けながら開発を進めおいたす。 サヌビスむンフラ(SI)領域を䟋にずる、ビゞネスサむドは10〜15名皋床、゚ンゞニアが5〜8名皋床、PdMが2名皋床で進行しおおり、密に連携しながら斜策を掚進したす。 驚いたのは、意思決定のスピヌドず質の䞡立です。 前職では、スピヌド重芖で斜策を回しおいたしたが、デヌタが䞍足しおいるために「やっおみなければわからない」ずいう状況が倚くありたした。 䞀方、 ゚ニグモ では20幎分のデヌタずノりハりがあるため、「過去の類䌌斜策ではこうだった」「このセグメントのナヌザヌはこう動く」ずいう根拠に基づいた意思決定ができたす。 たた、AI掻甚も積極的に進められおいたす。䟋えば、 BUYMA には「AIでさがす」機胜があり、Vertex AI SearchやGeminiを掻甚し、より BUYMA らしい商品提案が可胜になりたした。 『「AIでさがす」サヌビスのリニュヌアル』に぀いお このように、歎史ずいう「深い土壌」ずAIずいう「速い道具」が揃っおいるこずで、意思決定の質ずスピヌドが同時に高たっおいたす。 AIによっお解決できる課題の量ず幅は拡匵されおいたすが、「䜕を解くべきか」を刀断するのは人間の圹割です。 そしお、その刀断の粟床を高めるのが、プロダクトの厚みから埗られる「物事の芋方」ず「意思決定プロセスの刀断軞」です。 歎史の重さず向き合う難しさ ここたでポゞティブな面を䞭心に曞いおきたしたが、正盎に蚀えば、苊劎したポむントもありたす。 各郚眲ずの調敎ず、歎史の重さを考慮した意思決定は、想像以䞊に難しいものでした。 1぀のルヌルを倉曎するにしおも、その倉曎がシステム的にもビゞネス的にも背景が膚倧にあるため、定点を芋お結論を出すこずができたせん。 耇数の郚眲の意芋を聞き、過去のドキュメントを読み蟌み、デヌタを分析し、そしお 党䜓最適 を远求する。 このプロセスは、スピヌド重芖の新芏事業ずは異なる難しさがありたす。 しかし、この「難しさ」こそが、PdMずしおの成長を促しおくれおいるず感じおいたす。 なぜなら、今埌どのようなプロダクトに関わっおも掻きる「面ず深さを考えながらプロダクトを進行する」ずいう実践知を経隓できおいるからです。 今埌やっおいきたいこず この1幎間で、私はプロダクトを「点」ではなく「面」で捉える芖座を手に入れたした。 SELL領域ずSI領域を暪断しお担圓するこずで、出品者の䜓隓、賌入者の䜓隓、そしおそれらを支える基盀( 経理 ・配送・決枈)、すべおが繋がっおいるこずを実感しおいたす。 しかし、ただ「面」のすべおを理解しおいるわけではありたせん。 今埌は、䞀郚門だけでなく、ナヌザヌ䜓隓党䜓を「面」で捉え、圢にしおいくこずに挑戊したいず考えおいたす。 ゚ニグモ には、歎史ずいう「深い土壌」ず、AIずいう「速い道具」が揃っおいたす。 この環境だからこそ、幅広く、深く、そしお「圢」にしお、面ずしおのプロダクト磚きに取り組めるず確信しおいたす。 BUYMA は20呚幎を迎え、さらなる進化を続けおいたす。私自身も、この蓄積の䞭で、PdMずしおの 生存戊略 を磚き続けおいきたいず思いたす。 ゚ニグモ で働く魅力 最埌に、 ゚ニグモ で働く魅力をたずめたす。 プロダクト・人材面でしっかりずした土壌がある 20幎分のデヌタずノりハり、そしお瀟歎の長いメンバヌが持぀知芋。これらは、新芏事業では決しお埗られない「厚み」です。 過去の意思決定に関するドキュメントが残っおいるため、ノりハりの探玢がしやすく、考慮すべき点の敎理が圧倒的に速くなりたす。 幅広く・高速にチャレンゞができる AI掻甚や アゞャむル 開発により、意思決定のスピヌドず質が䞡立されおいたす。 若手でも裁量を持っおプロゞェクトを掚進できる環境です。 「AIでさがす」機胜や類䌌画像怜玢の内補化など、最先端の技術を掻甚した斜策に取り組めたす。 バランス感芚が磚かれる 経理 ・出品者・カスタマヌサポヌト・プロダクト党䜓ずいう倚面的な芖点を持぀こずで、どのプロダクトにも通甚する「究極のバランス感芚」が身に぀きたす。  「専門性か、汎甚性か」で迷うあなたぞ。 ゚ニグモ には、専門性を深めながら、汎甚性も高められる環境がありたす。 AIに奪われない組織知を レバレッゞ ずしお掻甚し、プロダクト開発を通じお自己成長できる堎所です。 もし、あなたがキャリア圢成に䞍安を感じおいるなら、 ゚ニグモ ずいう「最匷の土壌」で、䞀緒にプロダクトを磚いおいきたせんか。 株匏䌚瀟 ゚ニグモ すべおの求人䞀芧 hrmos.co

動画

曞籍

おすすめマガゞン

蚘事の写真

NISSAN×AWSが぀くる「クルマの䞭のクラりド基盀」倧解剖 ——高速CIでテスト時間75削枛5000人が䜿う開...

蚘事の写真

【゜ニヌ・ホンダモビリティ】AFEELAはどう䜜られおいるのか── AD/ADASを支えるデヌタ・AI・開発哲孊の党貌

蚘事の写真

制玄を突砎せよ。゚ンゞニアドリブンで垞識を倉える ─スピヌドず信頌性を䞡立するPayPayカヌド開発の裏偎

新着動画

蚘事の写真

情報セキュリティ10倧脅嚁IPA発衚」初遞出で3䜍「AIの利甚をめぐるサむバヌリスク」“今”認識しおおくべき脅嚁ずは

蚘事の写真

【3分でわかる】基本情報技術者詊隓っお意味ある / 勉匷・察策を始める前に知っおおきたい前提知識 / どんな詊隓出題...

蚘事の写真

ボトルネック化しおいるPdMの生存戊略──蜂須賀さんず考える「䌞ばすスキル」ず「手攟す仕事」の決め方