📝Quotidien

Jour 21

Tony Duong

Tony Duong

avr. 13, 2026 · 2 min

Aussi disponible en:🇬🇧🇯🇵
#engineering#ddia#reading#transactions#youtube#video#concurrency#testing#distributed-systems#aws#iam-identity-center#sandbox#ai
Jour 21

Aujourd'hui, j'ai :

Extrait générique Ruby/Rails RSpec

# spec/models/job_concurrency_spec.rb
it "keeps both updates without lost update" do
  job = Job.create!(state: { "a" => { "status" => "pending" }, "b" => { "status" => "pending" } })
  ready = Queue.new
  go = Queue.new

  threads = %w[a b].map do |key|
    Thread.new do
      ActiveRecord::Base.connection_pool.with_connection do
        local = Job.find(job.id)
        ready << true
        go.pop
        local.update_node_status!(key, "succeeded")
      end
    end
  end

  2.times { ready.pop }
  2.times { go << true }
  threads.each(&:join) # wait for both threads to finish

  result = Job.find(job.id)
  expect(result.state.dig("a", "status")).to eq("succeeded")
  expect(result.state.dig("b", "status")).to eq("succeeded")
end
# app/models/job.rb
def update_node_status!(key, status)
  with_lock do
    data = state.deep_dup
    data[key]["status"] = status
    update!(state: data)
  end
end

AWS Innovation Sandbox on AWS (résumé rapide)

  • utilise IAM Identity Center pour permettre aux admins/managers/utilisateurs sandbox d'acceder aux comptes sandbox avec une authentification/autorisation centralisee
  • sert la web ui via CloudFront + S3, avec le trafic API protege par WAF et route via API Gateway
  • execute la logique de workflow avec Lambda, EventBridge et Step Functions pour le cycle de vie des comptes et l'automatisation
  • stocke l'etat/la configuration dans DynamoDB et AppConfig, avec une separation claire entre control plane et comptes sandbox geres

Architecture AWS Innovation Sandbox


Traduit par Claude

Tony Duong

Par Tony Duong

Un journal intime numérique. Pensées, expériences et réflexions.