top of page



If you are writing code in Python which communicates with AWS APIs you are more than likely using the boto3 library.

boto3 isn't extended via inheritance or callbacks, instead it offers an event system which allows you to intercept and modify calls at different stages in their lifecycle.

This is a very powerful mechanism but it can be hard to write code for very rare events.

Using a tool like mitmproxy you can rewrite responses boto3 receives and simulate rarer events to aid writing code to handle them.

In this talk I'll show:

  • How to write basic code to listen to events


  • An example of some events you might see in typical S3 requests


  • How to use mitmproxy to intercept, understand and ultimately rewrite HTTP requests between boto3 and AWS to simulate different scenarios


  • An example of the events you'll see during request retries


  • An example putting this together to insert monitoring into the boto3 retry mechanism to diagnose network issues


Michael has helped with the organization and running of many community events, including Python Ireland, PyCon Ireland and Coding Grace.

He currently works as a Senior Cloud Architect with fourTheorem, helping clients move to modern cloud architectures.

bottom of page