並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 248件

新着順 人気順

transactionの検索結果1 - 40 件 / 248件

  • DMARC をなめるな - 弁護士ドットコム株式会社 Creators’ blog

    Gmailが「メール送信者のガイドライン」を改訂し、なりすましメールへの対策を強化する旨を発表しています。今までは原則、なりすましメール対策の有無にかかわらず、メールはいちおうは届いていました。しかし今後は、なりすましとみなされたメールは届かなくなる方向に向かいつつあります。 なりすましメールとみなされないようにするために、メール送信者には、「メール送信ドメイン認証」への対応が求められます。メール送信ドメイン認証の技術には、主に以下の3つがあります。 SPF: Sender Policy Framework (RFC 7208) DKIM: DomainKeys Identified Mail (RFC 6376) DMARC: Domain-based Message Authentication, Reporting, and Conformance (RFC 7489) SPFは従来

      DMARC をなめるな - 弁護士ドットコム株式会社 Creators’ blog
    • データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)

      これはなに ども、レバテック開発部のもりたです。最近めっちゃ元気!! 今回は『データベースについて勉強したいあなたに送る技術書17冊(+11冊1講義7link)』として、もりたがここ半年くらいでわーっと集めたデータベース周りの書籍(とか)を紹介していきます。アプリケーションって結局はデータベースみたいなところがあると思うんですが、おれは長いことデータベースをどう学んだら良いのか分かりませんでした。同じような気持ちを抱えているITエンジニアの人もいると思うので、学習ロードマップと合わせて紹介していきます。 なお具体的な対象読者は業務でなんとなくSQL書いてるけど、ウィンドウ関数とか言われると分からんな……くらいの人です。 扱う領域と扱わない領域 扱う領域としてはだいたい以下 再入門本 SQL 内部構造 論理設計 周辺知識 データベース理論 その他高度なもの モデリング、NoSQL、分散データ

        データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
      • 期限の制約なく無料で使えるクラウド「Free Tier」主要サービスまとめ。2023年版

        いくつかのクラウドサービスでは、新規ユーザーに対する1年程度の無料トライアルや一定額のクーポンなどの提供だけでなく、期間の制限なくずっと無料で使える、いわゆる「Free Tier」や「Always Free」と呼ばれるサービスが提供されています。 こうしたサービスは試行用の環境や一時的なテスト環境、あるいはホビー用途などに適しています。 本記事では期限の制約なく無料で提供されている主なクラウドサービスを、2023年版としてまとめました(新規ユーザーとして期限の制約なく無料で使えるものを優先しています)。 ただしこれらの無料のサービスは、提供側の都合によって申し込みや利用が制限されたり、もしくは提供自体が終了したりすることがあります(昨年、多くのITエンジニアに人気であったHerokuのFreeプランが終了したことをご記憶の読者も多いでしょう)。 無料のサービスを利用する場合には、そうした提

          期限の制約なく無料で使えるクラウド「Free Tier」主要サービスまとめ。2023年版
        • ドメイン駆動設計の正体

          はじめに "ドメイン駆動設計は当たり前のことを言っているだけ" "ドメイン駆動設計はただのオブジェクト指向プログラミング" "ドメイン駆動設計はより良いアーキテクチャだ" "軽量DDDはアンチパターンだ" このようなドメイン駆動設計に関する言及を聞いたことがあるでしょうか? ドメイン駆動設計に言及する記事や書籍は多くありますが、それぞれ着目する側面が異なったり色々なコンテキストから言及されています。 おそらくそれが原因でドメイン駆動設計が何であるかをぼやけさせ、正体のわかりにくい概念になっているように思えます。 そこで今回は色々な観点から整理し、ドメイン駆動設計とは何であるのか、その正体を考えていきます。 ドメイン駆動設計の基本的概念について ドメイン駆動設計はEric Evansが出版した「Domain-Driven Design」という書籍がルーツになっています。 ドメイン駆動設計を一

            ドメイン駆動設計の正体
          • クレカ会社を名乗る者から怪しい電話があったけど電話番号は確かに合ってる…?→電話番号偽装詐欺だった

            虹ぐらし @nijigurashi 【注意喚起】先程クレカ会社から電話があって「Apple Payで今朝3回大きな額の買い物された形跡がありますがあなたですか」と言われたのでいいえと答えると、「ではこのtransactionをキャンセルしますね」と言われ、クレカの有効期限、後ろの3桁の番号を聞かれ、さらに→続く 2023-06-17 10:14:34 虹ぐらし @nijigurashi クレカの16桁番号まで聞かれたので「その情報はあなたが持ってるはずでしょう、私はあなたが信用できないのでかけ直します」と言ったんだけど、かけてきてる番号を確認しろ、クレカ会社の番号だというので確認したら確かに電話番号はあってる。でもオンラインでtransaction確認しても→続く 2023-06-17 10:17:13 虹ぐらし @nijigurashi Apple Payのは見当たらないのでやはりかけ直

              クレカ会社を名乗る者から怪しい電話があったけど電話番号は確かに合ってる…?→電話番号偽装詐欺だった
            • メンテのいらないソフトウェア - 誰かの役に立てばいいブログ

              ソフトウェアエンジニアとして働き始めて 20 年以上になります。 元々ソフトウェアでいろいろ作りたくて就いた職業なので、結構な数のプロダクトを開発してきました。 私がメインで開発したもので OSS として出ているものでは、 yrmcds: memcached クローンで、レプリケーション機能などを持つ usocksd: SOCKS4/5 サーバー & ライブラリ transocks: アプリのネットワーク通信を透過的に SOCKS サーバーにプロキシする透過プロキシ coil v2: Kubernetes の CNI ネットワークドライバ moco: MySQL を自動運用する Kubernetes オペレーター accurate: Kubernetes 上で namespace ベースのソフトマルチテナンシーを実現するためのソフトウェア などがあります。これらのソフトウェアの多くは、現役

                メンテのいらないソフトウェア - 誰かの役に立てばいいブログ
              • 5年後には標準になっている可観測性のこと - Learning Opentelemetry の読書感想文 - じゃあ、おうちで学べる

                はじめに 本稿は、オープンソースの可観測性(Observability)プロジェクトである OpenTelemetry を取り上げた書籍「Learning Opentelemetry」の読書感想文です。従来の可観測性の課題であったデータの分断を解消し、トレース、メトリクス、ログなどの様々なテレメトリデータを統合的に扱うことができる OpenTelemetry は、可観測性の分野における革命的な存在と言えます。 過去10年間で、可観測性はニッチな分野から、クラウドネイティブの世界のあらゆる部分に影響を与える数十億ドル規模の産業へと発展しました。しかし、効果的な可観測性の鍵は、高品質のテレメトリデータにあります。OpenTelemetryは、このデータを提供し、次世代の可観測性ツールと実践を開始することを目的としたプロジェクトです。 learning.oreilly.com 本書の想定読者は、

                  5年後には標準になっている可観測性のこと - Learning Opentelemetry の読書感想文 - じゃあ、おうちで学べる
                • 世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発

                  世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発― 処理性能456万TPSと応答遅延219ナノ秒を実現 ― 日本電気(株)と(株)ノーチラス・テクノロジーズはNEDOの「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発」(以下、委託事業)において、世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」(以下、劔)を開発しました。 劔は、次世代のデータベースに用いられるハードウエア環境(メニーコア・大容量メモリーなど)に適合したシステムであり、ハードウエアの性能が向上するほどシステムの性能も高まる特性を有しています。32以上のコア数を有するハードウエアにおいては、世界最速レベルの処理性能456万TPSと219ナノ秒の応答遅延を実現しました。 劔の導入によって、複雑なバッチ処理とオンライン

                    世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発
                  • さよならVMware。本日(10月30日)Broadcomによる買収完了で、企業としての存在に幕。VMwareブランドは引き続き残る

                    さよならVMware。本日(10月30日)Broadcomによる買収完了で、企業としての存在に幕。VMwareブランドは引き続き残る Broadcomは10月18日付けのプレスリリースで、10月30日にVMwareの買収を完了する予定だと発表しています。 買収完了には主要各国の規制当局による認可が求められますが、現時点で中国を除く主要各国の認可が得られています。そのため、おそらく買収は予定通りに完了し、企業としてのVMwareは25年の歴史に幕を下ろすことになると見られます。 2023年10月31日追記:現地時間の10月30日付けで最新の状況が発表されました。買収が現地時間30日中に完了するかどうかは明記されていませんが、いずれにせよ間もなく買収が完了する見通しとのこと。 Broadcom and VMware Provide Update on Pending Transaction -

                      さよならVMware。本日(10月30日)Broadcomによる買収完了で、企業としての存在に幕。VMwareブランドは引き続き残る
                    • カード決済のセキュリティ的な問題点とその対策、IC チップの決済とその仕組み - カンムテックブログ

                      エンジニアの佐野です。カンムはカード決済のサービスを提供しています。カード決済にはいくつかの決済手段があり、マグストライプ、IC、IC非接触(俗に言うタッチ決済)、オンライン決済などの機能が提供可能です。iD のようなスマートデバイスにカード情報を入れてスマホでタッチ決済する仕組みもあります。カンムのプロダクトであるバンドルカードはマグストライプとオンライン決済、Pool はマグストライプとオンライン決済に加えて IC接触決済、IC非接触決済(タッチ決済)を提供しています。今日はセキュリティ的な観点から各種決済手段の特徴や問題点とともに、主に IC 決済の仕組みについて小ネタを交えつつ書いていこうと思います。カンムが提供しているカードは Visa カードでありクローズドな仕様や confidential なものについては言及することはできませんが、公開仕様であったり一般的な事柄のみを用いて

                        カード決済のセキュリティ的な問題点とその対策、IC チップの決済とその仕組み - カンムテックブログ
                      • MySQLのSQLクエリチューニングの要所を掴む勉強会を開催しました! - ANDPAD Tech Blog

                        こんにちは!DBREの福間(fkm_y)です。先月、弊社でデータベースの技術顧問をして頂いてる三谷(mita2)さんに開発本部向けの「MySQL SQLチューニング」勉強会を実施していただきました。 今回はMySQLの得意不得意なことの説明やSQLチューニングの流れ、具体的な事例を元にした対応例、また最近話題のHTAPな製品も紹介していただきとても参考になったのでポイントをおさえてレポートをお伝えします! 開催背景 本編 MySQL の得意なこと、苦手なこと データベースのチューニング手段と特徴 SQLチューニングの流れ インデックス SQLチューニング例 インデックスフルスキャンとカバーリングインデックス ソート まとめ 当日の資料 さいごに 過去開催されたデータベース勉強会レポート 開催背景 弊社では三谷さんによるデータベース勉強会を定期的に開催しています。数年前にも同じテーマで勉強会

                          MySQLのSQLクエリチューニングの要所を掴む勉強会を開催しました! - ANDPAD Tech Blog
                        • いいねとその通知機能をDynamoDBで設計したら思ったよりムズい - エムスリーテックブログ

                          【Unit4 ブログリレー4日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 今回は、SNSではごく一般的ないいねとその通知機能をDynamoDBを利用して実装したら思ったより大変だったので、その詳細をご紹介します。 キャナルシティ劇場は、福岡県福岡市博多区の複合商業施設「キャナルシティ博多」のシアタービル最上階に位置する劇場。本文には特に関係ありません。 m3ラウンジ m3ラウンジのいいねとその通知の要件 RDBで実装したらどうなるか いいね機能 通知機能 DynamoDBで実装する いいね機能 通知機能 いいねする いいねを取り消す 通知を表示する 未読の通知の取得 未読の通知数 未読の通知を既読にする テーブル設計むずい PKとSKに何を選ぶか LSIは途中から作れない DynamoDBをローカルで動かして設計する まとめ We are h

                            いいねとその通知機能をDynamoDBで設計したら思ったよりムズい - エムスリーテックブログ
                          • どのレイヤー(層)でトランザクションを実装すべきか

                            このように、層ごとに関心事の分離を行うことで、保守性の高い(変更容易性や再利用性等)アプリケーションを実現できます。 しかし、「トランザクション」においてはどうでしょうか。 トランザクションはビジネス領域においても、技術領域においても関心事がある内容です。 そういう曖昧なものは「ひとまず usecase 層に入れてしまえ」という方針になりがちです。 ですが、DB 固有の知識を usecase 層の関心事にしてしまっては、関心事の分離をするメリットが得られません。 そのため、関心事の分離を実現しつつトランザクション実装をする方法を模索してみました。 前提 1. クリーンアーキテクチャを採用している(オニオンアーキテクチャやレイヤードアーキテクチャも含む) そもそもビジネス知識と技術知識を分離していないアーキテクチャを採用している場合、メリットは得られません。 そのため、オニオンアーキテクチャ

                              どのレイヤー(層)でトランザクションを実装すべきか
                            • Cookie2 とは何か | blog.jxck.io

                              Intro タイトルを見て「Cookie の新しい仕様か、キャッチアップしよう」と思って開いたのなら、以降を読む必要はない。 Cookie History 2000 年に発行された Cookie の仕様である RFC 2965 では、仕様中に Set-Cookie2/Cookie2 (以下 Cookie2) という 2 つのヘッダが定義されている。しかし 2011 年に改定された現行の RFC 6265 ではそれらヘッダは deprecate されており、実際の Web でこれらのヘッダが交換される場面を、少なくとも筆者は見たことがない。存在すら知らない開発者も多いだろう。 筆者はずっと、この仕様がどのように出てきて、どうして消えていったのかが気になっていた。 Web 上にも情報が少なく、「歴史上の理由で」とか分かったようなことを言ってる人がたまにいるくらいだ。四半世紀前のことなので経緯を

                                Cookie2 とは何か | blog.jxck.io
                              • モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith

                                モジュラモノリスにおいてトランザクションはどうあるべきなのかについて整理している資料が少ない気付きがあったので「簡易的に」整理しました

                                  モジュラモノリスにおけるトランザクション設計の考え方 / transaction design on modular monolith
                                • SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ

                                  SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ SQLiteの開発チームは、複数クライアントからの同時書き込みを可能にするBEGIN CONCURRENT文を実装していることを明らかにしました。 これまでSQLiteでは書き込みの同時実行はできず、つねに1つのクライアントだけが書き込み可能でした。 同時書き込み処理は、データベースのジャーナルモードが「wal」(Write-Ahead-log)もしくはwalを改良した「wal2」で、BEGIN CONCURRENT文を実行した場合に可能となります。 どのように同時書き込み処理が行われるのかについては、上記のWebページの説明を引用しましょう。 ロックが延期されることで同時書き込みが可能に まず、書き込み時のロックがCOMMITまで延期されることで同時書き込みが実現されると説明されて

                                    SQLite、複数クライアントからの同時書き込みを可能にする「BEGIN CONCURRENT」文を実装へ
                                  • 【ソフトウェア設計】モジュールをどう分割するのか?

                                    はじめに 前々回や、前回に引き続き、ソフトウェア設計の指針に関する話をしたいと思います。 関数やクラス、そしてサービスなどシステムの塊の単位をモジュールと呼び、モジュールを作る事で、認知負荷を下げ複雑性と戦うという話をしてきました。では、モジュールは「いつ」分割するのが良いでしょうか? また、他にも共通モジュールを不用意に作ってしまって苦労した人も多いのでは無いでしょうか? 今回はそのあたりの話をしていきます。 TL;DR 以下があればモジュール設計を見直す 単純な要件/普段の利用に対して、タイプ量や約束事が多い 共通モジュールが「使われ方」に依存する モジュールの役割を一言で説明できない コード管理や性能/データ整合性など利用に際してのペナルティが高い 分割 is NOT 正義 - FizzBuzz Enterprise Edition 複雑性を排除するためにモジュール分割をすることは重

                                      【ソフトウェア設計】モジュールをどう分割するのか?
                                    • DB初心者が自作DBMS始めてみた - Qiita

                                      この記事は DeNA 24 新卒 Advent Calendar 2023 の 23 日目の記事です。 TL;DR DBMSの基本的な仕組みを知るのに有益だったリソース CMUのDBMS講義 先人の素晴らしい自作DBMSの解説記事&ソースコードリーディング 小さな小さな自作DBMSの設計と実装 最小限SELECTやINSERTなど基本的なSQLが動く この記事のゴール データベースの内部構成を超ざっくり理解するために有用なリソースを知り、そして(全開発者のロマンである)自作 DBMS に一歩踏み出すきっかけになればうれしいです。 モチベーション 自分は普段業務でアプリケーションのような割と高レイヤーな開発がメインなこともあって、ミドルウェアやOS、ネットワークと言った低めのレイヤーに憧れを持っており、この気持ちをまずは自作DBMSをやってみることによって解放してあげようと思ったことがきっか

                                        DB初心者が自作DBMS始めてみた - Qiita
                                      • Rust で SQLite を再実装している - kawasin73のブログ

                                        セキュリティを盾に一点突破。どうもかわしんです。最近 Rust で SQLite を実装してます。 以前の記事で HTTP Parser を Rust で実装しようとしたものの、すでに実装されていたので断念しましたが、いい題材を見つけました。SQLite です。開発中のリポジトリはこれです。 github.com 今の時点では、Read Only で1つの WHERE 句を持った SELECT 文しか処理できないですが、以下の機能を実装しています。 sqlite3 で生成された database ファイルの読み取り (cursor.rs, btree.rs, record.rs) SQL 文の解析 (token.rs, parser.rs) テーブルとインデックスのメタデータのパース (schema.rs) 動的なファイルの読み込み (pager.rs) SQL クエリとスキーマ情報を元に

                                          Rust で SQLite を再実装している - kawasin73のブログ
                                        • PythonでDDDやってみた💪 - techtekt

                                          はじめに 実行環境 ディレクトリ構造 app migrations/model pyproject.toml ソースコードと簡単な解説 app/core app/core/abstract app/core/decorator app/core/exception app/core/interface app/core/middleware app/core/mixin app/ddd app/ddd/application app/ddd/application/schema app/ddd/application/schema/studnet app/ddd/application/usecase app/ddd/application/usecase/student app/ddd/domain app/ddd/domain/student app/ddd/infra app/ddd

                                            PythonでDDDやってみた💪 - techtekt
                                          • なぜSQLiteはバイトコードを使うのか

                                            以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた SQLデータベース・エンジンを書くという問題をコンパイラ構築の問題として扱うのは自然なことだった データベースエンジンのコアの部分をVMにするという発想がまったくなかったので、どんなメリットがあるのか?と気になっていました。 それを作者に聞いたら、詳細な説明ページを作ってくれました。 個人的にVMにしたことで、評価&実行のパフォーマンスは多少良くなると思うが、データベースエンジンのパフォーマンスにそれほど寄与していないんじゃないかな?って思ったりしました。 本記事はそのページについ

                                              なぜSQLiteはバイトコードを使うのか
                                            • Epic GamesのボスがValveのGabe氏らを「お前らくそったれども」と罵倒したメールが公開される。“ストア税”をめぐった激情 - AUTOMATON

                                              デベロッパーのWolfire Gamesは現在、Steamを運営するValveを相手取り訴訟を提起している。この訴訟に関連し、Epic GamesのCEOであるTim Sweeney氏が、Valveの社長であるGabe Newell氏らに送った「罵倒を含むメール」が証拠品として浮上している。The GameDiscoverCoが紹介し、Ars Technicaなどが報じている。 今回メールが証拠として提出されたWolfire Gamesによる訴えは、Steamにおける売り上げの30%という手数料設定(いわゆる“ストア税”)などを巡り、独占禁止法および不正競争防止法違反を訴えていたもの(関連記事)。本訴訟は一度棄却されたものの、Wolfire Games側の修正訴状が通り、現在ふたたび係争中となっている。 そして同訴訟の中で公開された一連のメールは、2017年8月に送られたものから始まる。発

                                                Epic GamesのボスがValveのGabe氏らを「お前らくそったれども」と罵倒したメールが公開される。“ストア税”をめぐった激情 - AUTOMATON
                                              • 自分の研究内容(DBMS実装)に関する最強の本一式揃えた - Yoshisaurのメモ

                                                最強の本一式 揃えたぞー!! アフィリンクとかないので純粋に揃えたことをアピールしたい。書評することになる本の予告です。他にもおすすめがあればリコメンド待ってます! 結構それぞれ高いので、学生なら大学の図書館に取り寄せてもらうか、社会人なら気前よく購入!!という感じでいいんじゃないかと思います Designing Data-Intensive Applications 分散システムといえば!!!!この本一択!!! 一応日本語もある。一般的なエンジニアにもおすすめされている本 イノシシ本と呼ばれている https://www.amazon.co.jp/-/en/Martin-Kleppmann/dp/1449373321 Transaction Processing Concepts and Techniques トランザクション技術といえば...この本!! といっても当初は辞書みたいに使う

                                                  自分の研究内容(DBMS実装)に関する最強の本一式揃えた - Yoshisaurのメモ
                                                • goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ

                                                  【Unit4 ブログリレー6日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 最近まで開発していたm3ラウンジでは、goからRDBを利用していました。 m3ラウンジでは、SQLの組みやすさやテストのしやすさの観点で検討した結果、goquを採用しましたので、 そこで得られた知見とその実装例を紹介します。 これから試してみる方(と将来m3ラウンジの開発に新たに入ることになったメンバー)の参考になるように、サンプルコードも説明も多くなってしまいかなり長いです。 お時間ある時にお読みいただければ。 名古屋城は、日本の城のひとつ。尾張国愛知郡名古屋(現在の愛知県名古屋市中区本丸・北区名城)にある。本文には特に関係ありません。 m3ラウンジ goqu 実例 modelの構造体 mapper mapperの実装 goquのSQLの結果から構造体へのマッピング

                                                    goquを駆使してgoでSQL構築も構造体マッピングもRDBテストもやる - エムスリーテックブログ
                                                  • 分散SQLiteを実現する「LiteFS」にスナップショット機能によるディザスタリカバリを提供する「LiteFS Cloud」、Fly.ioが発表

                                                    分散SQLiteを実現する「LiteFS」にスナップショット機能によるディザスタリカバリを提供する「LiteFS Cloud」、Fly.ioが発表 データセンターをグローバル展開し、アプリケーションプラットフォームサービスを提供しているFly.ioは、分散SQLiteを実現するLiteFSの付加機能として、バックアップとスナップショット、リカバリ機能などをマネージドサービスとして提供する「LiteFS Cloud」を発表しました。 LiteFS Cloud: now in preview. We love SQLite for distributed web apps! Introducing managed backups for LiteFS. Read more from Darla Shockley and @benbjohnson.https://t.co/nQxitx5x7d

                                                      分散SQLiteを実現する「LiteFS」にスナップショット機能によるディザスタリカバリを提供する「LiteFS Cloud」、Fly.ioが発表
                                                    • Aurora MySQL におけるロック競合(ブロッキング)の原因を事後調査できる仕組みを作った話

                                                      こんにちは。 DBRE チーム所属の @p2sk です。 DBRE(Database Reliability Engineering)チームでは、横断組織としてデータベースに関する課題解決や、組織のアジリティとガバナンスのバランスを取るためのプラットフォーム開発などを行なっております。DBRE は比較的新しい概念で、DBRE という組織がある会社も少なく、あったとしても取り組んでいる内容や考え方が異なるような、発展途上の非常に面白い領域です。 弊社における DBRE チーム発足の背景やチームの役割については「KTC における DBRE の必要性」というテックブログをご覧ください。 本記事では、Aurora MySQL でロック競合(ブロッキング)起因のタイムアウトエラーが発生した際に根本原因を特定することができなかったので、原因を後追いするために必要な情報を定期的に収集する仕組みを構築した

                                                      • トランザクションを考慮した実装について考える

                                                        はじめに アプリケーションレイヤーでトランザクションを考慮した実装をどのようにすればいいのか悩んでいる人が多いことに気がつきました。オニオンアーキテクチャ等でアプリケーションコードを関心ごとのレイヤーに分離するときに、トランザクションを開始するためのDBとのコネクションの作成をどのレイヤーで実施するのか悩んでいる人が多いそうです。 本記事ではDDD+オニオンアーキテクチャ+Repositoryパターンを使う前提で、私がよく使うトランザクションを考慮した実装について説明しようと思います。 トランザクションを考慮した実装 私はトランザクションを開始するためのDBとのコネクションの作成はUsecase層で実施します。 私がよく書く実装ではDDDでいうEntityを定義します。そしてRepositoryではEntityのCRUDのみ行うように実装し、Repositoryをトランザクション境界にしま

                                                          トランザクションを考慮した実装について考える
                                                        • Confusing git terminology

                                                          Hello! I’m slowly working on explaining git. One of my biggest problems is that after almost 15 years of using git, I’ve become very used to git’s idiosyncracies and it’s easy for me to forget what’s confusing about it. So I asked people on Mastodon: what git jargon do you find confusing? thinking of writing a blog post that explains some of git’s weirder terminology: “detached HEAD state”, “fast-

                                                          • メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング

                                                            この記事は、Merpay Tech Openness Month 2023 の7日目の記事です。 はじめに こんにちは。メルコイン Payment Platform チームの @sapuri です。 メルコインではマイクロサービスアーキテクチャを採用しており、お客さまによりアプリの操作が行われると、それぞれのマイクロサービスを横断してリクエストが処理されます。 メルコインの Payment Platform は、お客さまの残高の管理や各種帳簿の作成などの決済事業のための基盤となる仕組みを提供しています。 そのなかで、Payment Service は決済トランザクションを管理するサービスとして、下位層のサービスが提供する各種決済手段を利用して、上位層のサービスが共通して利用できる決済 API を提供しています。 この記事ではマイクロサービスアーキテクチャにおける分散トランザクション管理の課

                                                              メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング
                                                            • アプリケーション開発者のための PostgreSQL アーキテクチャに関する検討: パート 1 | Amazon Web Services

                                                              Amazon Web Services ブログ アプリケーション開発者のための PostgreSQL アーキテクチャに関する検討: パート 1 アプリケーション層は多くのクラウドアーキテクチャで世界中がアクセスする部分ですが、使用しているデータベースに合わせてアプリケーションを最適化する方法を検討することはほとんどないようです。リレーショナルデータベースエンジンを使用するときは、スキーマの設計だけでなく、アプリケーションが管理可能で、スケーラブルで、パフォーマンスが高いことを保証するために、データベースがストレージシステムに対してデータを読み書きする方法を理解することが重要です。シリーズのパート 1 となるこの投稿では、PostgreSQL の主要な用語について説明し、次に、Amazon Aurora PostgreSQL 互換エディションまたは Amazon Relational Dat

                                                                アプリケーション開発者のための PostgreSQL アーキテクチャに関する検討: パート 1 | Amazon Web Services
                                                              • 間接参照を巨大仮想メモリで飲み込む - Software Transactional Memo

                                                                この記事はデータベース・システム系 Advent Calendar 2023の3日目の記事である。昨日の記事も僕でした。 間接参照を巨大仮想メモリで飲み込む メインメモリはハードディスクやSSDより容量が小さく、この問題は当面は解決の目処が立たない。 そもそも今のDRAMより速くて安くて大きいストレージが仮に発明されてもそれがDRAMに取って代わるメインメモリの立ち位置になるだけであってその下のレイヤーには依然としてそのメインメモリより安くて大きなストレージが置かれる事になる。大局的な観点ではストレージの階層構造とは経済活動の鏡像でもある。 バッファプール さて、耳にタコができるほど繰り返しているが現代のデータベースはディスクなどの永続ストレージにデータの本尊が保存され、メインメモリはそれに対する読み書きを高速化するためのデータ一時置き場としての役割を担当している。 代表的なRDBMSは3

                                                                  間接参照を巨大仮想メモリで飲み込む - Software Transactional Memo
                                                                • Ruby 3.3’s YJIT Runs Shopify’s Production Code 15% Faster

                                                                  Ruby 3.2 YJIT is Battle-Tested Shopify deploys YJIT on business-critical services in production, such as Storefront Renderer, the software that powers all online storefronts on Shopify’s platform, and Shopify’s Monolith. As of the Ruby 3.2 release, YJIT sped up our Storefront Renderer by 10% on average. Storefront Renderer is a complex application. Your more reasonable-sized app might get better/w

                                                                    Ruby 3.3’s YJIT Runs Shopify’s Production Code 15% Faster
                                                                  • タイミーデータ基盤のモデリング設計について - Timee Product Team Blog

                                                                    はじめに こんにちはokodoonです タイミーのデータ基盤に対してデータモデリングを始めてしばらく経ったので、現状の全体構成を紹介したいと思います 全体構成 弊社のBigQueryは以下の4層にレイヤリングされています それぞれの役割は以下のような切り分けになっています レイヤー名 役割 データレイク層 複数ソースシステムのデータを未加工の状態でBigQueryにロードする宛先 dbt snapshotによるソースの履歴化 ステージング層 複数ソースシステムのデータを共通した処理でクレンジングする層 DWH層 ソースシステムのデータ形式を分析に適した形に変換する層 ディメンショナルモデリング/ログテーブルをイベント単位に分割/その他便利テーブル作成 データマート層 特定用途に対して1:1で作成されたテーブル群を格納する層 ダッシュボード用テーブル/Looker用テーブル/GoogleSh

                                                                      タイミーデータ基盤のモデリング設計について - Timee Product Team Blog
                                                                    • ActiveRecord::Base.transaction(joinable: false)を使ってはいけない - SmartHR Tech Blog

                                                                      注意喚起の記事になります。タイトルが結論です。 既にこの問題に言及している記事はいくつかあるのですが*1、私は気付かずに踏んでしまったので、タイトルで「おっと、うちは大丈夫かな」と思ってもらえるようにこの記事を書いています。 joinableとは何か 問題として挙げているjoinableオプションですが、これはネストしたトランザクションの挙動に影響を与えます。少しややこしいので、サンプルコードを見せながら説明します。 # frozen_string_literal: true require "bundler/inline" gemfile(true) do source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } gem "activerecord", "7.

                                                                        ActiveRecord::Base.transaction(joinable: false)を使ってはいけない - SmartHR Tech Blog
                                                                      • MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;

                                                                        MySQLのトランザクション分離レベルについてふんわりとした理解しかないなと感じた。もう少し理解するために、とくにREPEATABLE READとREAD COMMITTEDの違いを手を動かして色々確認してみた。 以下の記事を参考にした。 [RDBMS][SQL]トランザクション分離レベルについて極力分かりやすく解説 #SQL - Qiita MySQL :: MySQL 8.0 リファレンスマニュアル :: 15.7.2.1 トランザクション分離レベル 大まかな違い 公式ドキュメントを見る限り ノンリピータブルリード、ファントムリードが発生するか 範囲に含まれるギャップへのほかのセッションによる挿入をブロックするか の違いがありそうに見える。 ノンリピータブルリード、ファントムリードが発生するかを試す 以下のテーブルを作る。 CREATE TABLE `posts` ( `title`

                                                                          MySQLのREPEATABLE READとREAD COMMITTEDの違いを知るために色々試した - $shibayu36->blog;
                                                                        • Why SQLite Uses Bytecode

                                                                          1. Introduction Every SQL database engine works in roughly the same way: It first translates the input SQL text into a "prepared statement". Then it "executes" the prepared statement to generate a result. A prepared statement is an object that represents the steps needed to accomplish the input SQL. Or, to think of it in another way, the prepared statement is the SQL statement translated into a fo

                                                                          • プレミアムプランの状態管理と決済ハンドリングの難しさ|tsusowake

                                                                            はじめにこんにちは、PIVOTでソフトウェアエンジニアをしている裾分です。PIVOTは2024年2月にアプリ・Webを本格始動しました。私はPIVOTにジョインして以降、サブスクリプション機能の開発をしてきたので設計の概要と決済プラットフォームが係る実装の難しさについてまとめてみました。 本題冒頭のリリースの通り、PIVOTはYouTubeからプロダクトに集中するにあたり、サブスクリプション機能をリリースしています。 サブスクリプションを実装するにあたり考慮すべき点として、以下の状態を考慮する必要があります。 自サービスで管理する状態 ユーザーのサブスクリプション ユーザーのプラン 他サービスで管理する状態 ユーザーへの課金を行うプラットフォームに登録されているサブスクリプションの状態 決済状態(成功 | 失敗 | …) PIVOTの場合では、決済プラットフォームとして App Store

                                                                              プレミアムプランの状態管理と決済ハンドリングの難しさ|tsusowake
                                                                            • CodeMirror v6によるZennのMarkdownエディタの作り方

                                                                              Zennでは、「記事」や「本のチャプター」のMarkdownエディタのベースにCodeMirrorというライブラリを使っています。これまではCodeMirrorのv5を使っていた(正確にはv5に依存するラッパーライブラリを使っていた)のですが、古いバージョンを使い続けるリスク解消と更なるエディタの拡張性を得るため、CodeMirrorのv6にアップグレードすることにしました。 本記事では、CodeMirror v6の基本的な知識部分から、ZennのMarkdownエディタを実装するまでのカスタマイズ方法を紹介します。 CodeMirrorの基礎知識 はじめに CodeMirrorはWeb上にコードエディタを実装するためのライブラリです。標準で多くのプログラミング言語に対応したシンタックスハイライトや入力補完、折りたたみ、キーマップ、マルチカーソルなど、モダンなコードエディタに必要な機能を備

                                                                                CodeMirror v6によるZennのMarkdownエディタの作り方
                                                                              • Rails 7.0.5以降におけるcreate_associationメソッドの挙動変更についてまとめ - おもしろwebサービス開発日記

                                                                                この件、関連するPRやIssueが複数あってコメントも分散しており、人に説明するのがややこしいのでブログとしてまとめたものになります。間違いや意見などあったらコメントください! 追記(2023/08/02) 7-0-stableブランチに今回の変更をrevertするコミットが入りました。挙動が変わって困った人が出たので一度元に戻して仕切り直しにする方針のようです。 [7-0-stable] Revert singular association breaking changes by zzak · Pull Request #48809 · rails/rails 7.0.7がいつリリースされるかはわかりませんが、今の状態でリリースされたら7.0.4の振る舞いに戻ることになります。7.0.5以降の変更で困っている人は一旦7-0-stableを指すようにすると良いかもしれません。 概要 Ra

                                                                                  Rails 7.0.5以降におけるcreate_associationメソッドの挙動変更についてまとめ - おもしろwebサービス開発日記
                                                                                • New RelicのSLOモニタリング+バーンレートアラートをCDK for Terraform(cdktf)でIaC管理する - Uzabase for Engineers

                                                                                  こんにちは、ソーシャル経済メディア「NewsPicks」でSREをしている飯野です。 今回はSREで行ったNew RelicをCDK for TerraformでIaC管理する話を紹介したいと思います。 SLOモニタリングをSREチームだけで行うのは難しい CDK for Terraformとcdktf-newrelic-provider 追記 IaCで作成する内容 CDK for Terraformで実装していく -1. cdktf init 0. @cdktf/newrelic-provicerの初期化 1.DataNewrelicEntityの作成 2.ServiceLevelの作成 3.AlertPolicyの作成 4.AlertCondition(バーンレートアラート)の作成 5. NotificationDestinationの作成 6. NotificationChannel

                                                                                    New RelicのSLOモニタリング+バーンレートアラートをCDK for Terraform(cdktf)でIaC管理する - Uzabase for Engineers