Moving to MongoDB with Michael Kennedy – Episode 119

Summary

There are dozens of decisions that need to be made when building an application. Sometimes this can lead to analysis paralysis and prevent you from making progress, so don’t let the perfect be the enemy of the good. This week Michael Kennedy shares his experience with evolving his application architecture when his business needs outgrew his initial designs.

linode-banner-sponsor-largeDo you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? Check out Linode at linode.com/podcastinit or use the code podcastinit2017 and get a $20 credit to try out their fast and reliable Linux virtual servers. They’ve got lightning fast networking and SSD servers with plenty of power and storage to run whatever you want to experiment on.


Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch.
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • Your host as usual is Tobias Macey and today I’m interviewing Mike Kennedy about his work scaling his apps and his business

Interview

  • Introductions
  • How did you get introduced to Python?
  • In some of your recent episodes you have mentioned the work that you did to migrate your applications to run on MongoDB. Can you start by describing the business case for these applications and how you arrived at the initial design?
  • What was the limiting factor that led you to consider such a drastic shift in how you store and manage your data and what benefits did you gain when the work was complete?
    • If the issue was with scaling, how did you identify the choke points?
    • Why go from relational (SQLite) to document (Mongo) instead of what would seem a more obvious choice of a production grade relational engine such as PostGreSQL or MySQL?
  • Are there any particular synergies that arise from using a document as opposed to a relational store when working with Python and what are some of the main considerations when deciding between them?
  • What was happening in your business that precipitated the need for this work?
  • How are you talking to MongoDB from Python? Directly (via pymongo) or ORM-style?
    • Why did you make that choice?
    • How well is that working out? Advantages / drawbacks?
  • In addition to podcasting you have also been working to create a number of successful courses to teach people how to use Python. Is there anything specific to the language that translates into how you design the material?
  • For anyone who wants to learn more about the benefits and tradeoffs of using a document store with their Python applications, what are some resources that you recommend?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Notable Replies

  1. amfwq says:

    I think it is really cool how you have been having guests on recently to talk about something other than what they are primarily known for. It shows that you put time into keeping up with the Python community.

    Do you recommend any guides or other resources for Org mode? I have been using for years but use almost no features now. I used to do a bit more, but now I just use the outlining features of having a nested set of headlines that are easy to expand and collapse and also to rearrange with the arrow keys. Just those features alone and the fact that it is just a plain text file are enough to be very useful to me, but I am likely missing out on a lot more.

Continue the discussion https://discourse.pythonpodcast.com

Participants