📝Quotidien

Jour 21

Tony Duong

Tony Duong

avr. 13, 20262 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.