Django District


Making Django Play Nice with Third Party Services


Matt Makai / @mattmakai

Matt Makai


 {'name': 'Matt Makai',
  'occupation': 'Full stack developer',
  'specialties': ['Python',
                  {'Django': 'since 0.96'},
                  'prototypes',
                  'oh crap! moments'],
  'normal_location': 'Washington, DC', 
 }
                    

codingacrossamerica.com

Making Django Play Nice with Third Party Services

Why Care?

  • Your app, your responsibility
  • Service usage is increasing
  • Little effort to prevent big headaches

What You Will Learn

  • Discover new services
  • Evaluate objectively
  • Integrate properly with Django
  • Maintain your sanity

Discover

Mindset

  • Research when not under pressure to immediately integrate
  • Ask "What problem can this service potentially solve?"

Mindset

  • Background and philosophy
  • Openness about their solution approach
  • Bookmark services and arguments for and against

"Push" sources

Heroku Addons

Geckoboard Widgets

Ducksboard Integrations

Evaluate

Platform

  • What language tutorials do they provide?
  • What ecosystem is their platform built with?
  • Do they have developer evangelists to reach out to?

Twilio

  • Tutorials in Python
  • Platform built on Python
  • Open source Django application examples
  • Developer evangelists active in Python community

Twilio open source examples

Stripe

  • Payment processing
  • Tutorials in Ruby, Python, PHP
  • Ruby & CoffeeScript platform
  • Third party open source Django application examples

Stripe tutorial

Intercom

  • Customer engagement
  • Ruby on Rails platform
  • Third party open source Django application examples
  • Long term viability?

Intercom open source

Factor.io

  • Build and deployment workflow
  • Microsoft & PHP platform
  • No Django tutorials or projects

Integrate

Integration Paths

  • First-party binding
  • Open source binding
  • libsaas
  • Requests

First-party binding

  • Ideal
  • Update frequency
  • Pull request incorporation speed
  • Outstanding issues

Official GitHub binding?

Third-party binding

  • Update frequency
  • Pull request incorporation speed
  • Outstanding issues
  • Company backing?

Third-party binding

Print repos

libsaas

Print repos

Requests

Print (public) Repos

Maintain

Project README / docs

  • What services are used?
  • How are the services tested locally?
  • Who controls the user names and passwords?
  • Do the services cover full range of purposes? (debugging, user engagement, payments, etc)

Environment variables

Local env variable setting

PyPi Notifications

Testing services

  • Separate tests
  • Custom test runner
  • Break build? Or alert?

Resources

Resources

?

Thank you!