René's URL Explorer Experiment


Title: Python Microservices With gRPC – Real Python

Open Graph Title: Python Microservices With gRPC – Real Python

Description: In this tutorial, you'll learn how to build a robust and developer-friendly Python microservices infrastructure. You'll learn what microservices are and how you can implement them using gRPC and Kubernetes. You'll also explore advanced topics such as interceptors and integration testing.

Open Graph Description: In this tutorial, you'll learn how to build a robust and developer-friendly Python microservices infrastructure. You'll learn what microservices are and how you can implement them using gRPC and Kubernetes. You'll also explore advanced topics such as interceptors and integration testing.

Mail addresses
?subject=Python article for you&body=Python Microservices With gRPC on Real Python https://realpython.com/python-microservices-grpc/

Opengraph URL: https://realpython.com/python-microservices-grpc/

X: @realpython

direct link

Domain: realpython.com


Hey, it has json ld scripts:
{
  "@context": "http://schema.org",
  "@type": "Article",
  "headline": "Python Microservices With gRPC",
  "image": {
    "@type": "ImageObject",
    "url": "https://files.realpython.com/media/Creating-Microservices-with-Python_Watermarked.d5708bfb6806.jpg",
    "width": 1920,
    "height": 1080
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://realpython.com/python-microservices-grpc/",
    "lastReviewed": "2023-09-25",
    "author": {
      "@type": "Person",
      "name": "Dan Hipschman",
      "image": "https://realpython.com/cdn-cgi/image/width=1500,height=1500,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/real-python-logo-square.28474fda9228.png",
      "url": "https://realpython.com/team/dhipschman/",
      "affiliation": {
        "@type": "Organization",
        "@id": "https://realpython.com/#organization",
        "name": "Real Python",
        "url": "https://realpython.com",
        "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
      }
    },
    "reviewedBy": [
      {
        "@type": "Person",
        "name": "Aldren Santos",
        "image": "https://realpython.com/cdn-cgi/image/width=500,height=500,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/Aldren_Santos_Real_Python.6b0861d8b841.png",
        "url": "https://realpython.com/team/asantos/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "David Amos",
        "image": "https://realpython.com/cdn-cgi/image/width=400,height=400,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/me-small.f5f49f1c48e1.jpg",
        "url": "https://realpython.com/team/damos/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Geir Arne Hjelle",
        "image": "https://realpython.com/cdn-cgi/image/width=800,height=800,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/gahjelle.470149ee709e.jpg",
        "url": "https://realpython.com/team/gahjelle/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Joanna Jablonski",
        "image": "https://realpython.com/cdn-cgi/image/width=800,height=800,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/jjablonksi-avatar.e37c4f83308e.jpg",
        "url": "https://realpython.com/team/jjablonski/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      },
      {
        "@type": "Person",
        "name": "Jacob Schmitt",
        "image": "https://realpython.com/cdn-cgi/image/width=400,height=400,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/profile-small_js.2f4d0d8da1ca.jpg",
        "url": "https://realpython.com/team/jschmitt/",
        "affiliation": {
          "@type": "Organization",
          "@id": "https://realpython.com/#organization",
          "name": "Real Python",
          "url": "https://realpython.com",
          "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
        }
      }
    ]
  },
  "datePublished": "2021-02-10T14:00:00+00:00",
  "dateModified": "2023-09-25T19:55:51.969441+00:00",
  "publisher": {
    "@type": "Organization",
    "@id": "https://realpython.com/#organization",
    "name": "Real Python",
    "url": "https://realpython.com",
    "logo": {
      "@type": "ImageObject",
      "url": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png",
      "width": 512,
      "height": 512
    },
    "description": "Real Python is a leading provider of online Python education and one of the largest language-specific online communities for software developers. It publishes high-quality learning resources, such as tutorials, books, and courses to an audience of millions of developers, data scientists, and machine learning engineers each month.",
    "slogan": "Become a Python Expert",
    "email": "info@realpython.com",
    "sameAs": [
      "https://github.com/realpython",
      "https://www.youtube.com/realpython",
      "https://twitter.com/realpython",
      "https://x.com/realpython",
      "https://www.linkedin.com/company/realpython-com/",
      "https://www.facebook.com/learnrealpython",
      "https://www.instagram.com/realpython",
      "https://www.tiktok.com/@realpython.com"
    ]
  },
  "author": {
    "@type": "Person",
    "name": "Dan Hipschman",
    "image": "https://realpython.com/cdn-cgi/image/width=1500,height=1500,fit=crop,gravity=auto,format=auto/https://files.realpython.com/media/real-python-logo-square.28474fda9228.png",
    "url": "https://realpython.com/team/dhipschman/",
    "affiliation": {
      "@type": "Organization",
      "@id": "https://realpython.com/#organization",
      "name": "Real Python",
      "url": "https://realpython.com",
      "logo": "https://realpython.com/static/real-python-logo-square-512.157ae6bf64ed.png"
    }
  },
  "description": "In this tutorial, you'll learn how to build a robust and developer-friendly Python microservices infrastructure. You'll learn what microservices are and how you can implement them using gRPC and Kubernetes. You'll also explore advanced topics such as interceptors and integration testing."
}

authorReal Python
twitter:cardsummary_large_image
twitter:imagehttps://files.realpython.com/media/Creating-Microservices-with-Python_Watermarked.d5708bfb6806.jpg
og:imagehttps://files.realpython.com/media/Creating-Microservices-with-Python_Watermarked.d5708bfb6806.jpg
twitter:creator@realpython
og:typearticle

Links:

https://realpython.com/
Start Herehttps://realpython.com/start-here/
Learn Python https://realpython.com/python-microservices-grpc/
Python Tutorials →In-depth articles and video courseshttps://realpython.com/search?kind=article&kind=course&order=newest
Learning Paths →Guided study plans for accelerated learninghttps://realpython.com/learning-paths/
Quizzes & Exercises →Check your learning progresshttps://realpython.com/quizzes/
Browse Topics →Focus on a specific area or skill levelhttps://realpython.com/tutorials/all/
Community Chat →Learn with other Pythonistashttps://realpython.com/community/
Office Hours →Live Q&A calls with Python expertshttps://realpython.com/office-hours/
Podcast →Hear what’s new in the world of Pythonhttps://realpython.com/podcasts/rpp/
Books →Round out your knowledge and learn offlinehttps://realpython.com/products/books/
Reference →Concise definitions for common Python termshttps://realpython.com/ref/
Code Mentor →BetaPersonalized code assistance & learning toolshttps://realpython.com/mentor/
Unlock All Content →https://realpython.com/account/join/
More https://realpython.com/python-microservices-grpc/
Learner Storieshttps://realpython.com/learner-stories/
Python Newsletterhttps://realpython.com/newsletter/
Python Job Boardhttps://www.pythonjobshq.com
Meet the Teamhttps://realpython.com/team/
Become a Tutorial Writerhttps://realpython.com/write-for-us/
Become a Video Instructorhttps://realpython.com/become-an-instructor/
Searchhttps://realpython.com/search
https://realpython.com/search
Joinhttps://realpython.com/account/join/
Sign‑Inhttps://realpython.com/account/login/?next=%2Fpython-microservices-grpc%2F
Browse Topicshttps://realpython.com/tutorials/all/
Guided Learning Pathshttps://realpython.com/learning-paths/
Basicshttps://realpython.com/search?level=basics
Intermediatehttps://realpython.com/search?level=intermediate
Advancedhttps://realpython.com/search?level=advanced
aihttps://realpython.com/tutorials/ai/
algorithmshttps://realpython.com/tutorials/algorithms/
apihttps://realpython.com/tutorials/api/
best-practiceshttps://realpython.com/tutorials/best-practices/
careerhttps://realpython.com/tutorials/career/
communityhttps://realpython.com/tutorials/community/
databaseshttps://realpython.com/tutorials/databases/
data-sciencehttps://realpython.com/tutorials/data-science/
data-structureshttps://realpython.com/tutorials/data-structures/
data-vizhttps://realpython.com/tutorials/data-viz/
devopshttps://realpython.com/tutorials/devops/
djangohttps://realpython.com/tutorials/django/
dockerhttps://realpython.com/tutorials/docker/
editorshttps://realpython.com/tutorials/editors/
flaskhttps://realpython.com/tutorials/flask/
front-endhttps://realpython.com/tutorials/front-end/
gamedevhttps://realpython.com/tutorials/gamedev/
guihttps://realpython.com/tutorials/gui/
machine-learninghttps://realpython.com/tutorials/machine-learning/
newshttps://realpython.com/tutorials/news/
numpyhttps://realpython.com/tutorials/numpy/
projectshttps://realpython.com/tutorials/projects/
pythonhttps://realpython.com/tutorials/python/
stdlibhttps://realpython.com/tutorials/stdlib/
testinghttps://realpython.com/tutorials/testing/
toolshttps://realpython.com/tutorials/tools/
web-devhttps://realpython.com/tutorials/web-dev/
web-scrapinghttps://realpython.com/tutorials/web-scraping/
Table of Contentshttps://realpython.com/python-microservices-grpc/#toc
Why Microservices?https://realpython.com/python-microservices-grpc/#why-microservices
Modularityhttps://realpython.com/python-microservices-grpc/#modularity
Flexibilityhttps://realpython.com/python-microservices-grpc/#flexibility
Robustnesshttps://realpython.com/python-microservices-grpc/#robustness
Ownershiphttps://realpython.com/python-microservices-grpc/#ownership
How Small Is “Micro”?https://realpython.com/python-microservices-grpc/#how-small-is-micro
The Microservice-Monolith Trade-Offhttps://realpython.com/python-microservices-grpc/#the-microservice-monolith-trade-off
Example Microserviceshttps://realpython.com/python-microservices-grpc/#example-microservices
Why RPC and Protocol Buffers?https://realpython.com/python-microservices-grpc/#why-rpc-and-protocol-buffers
Documentationhttps://realpython.com/python-microservices-grpc/#documentation
Validationhttps://realpython.com/python-microservices-grpc/#validation
Performancehttps://realpython.com/python-microservices-grpc/#performance
Developer-Friendlinesshttps://realpython.com/python-microservices-grpc/#developer-friendliness
Example Implementationhttps://realpython.com/python-microservices-grpc/#example-implementation
The RPC Clienthttps://realpython.com/python-microservices-grpc/#the-rpc-client
The RPC Serverhttps://realpython.com/python-microservices-grpc/#the-rpc-server
Tying It Togetherhttps://realpython.com/python-microservices-grpc/#tying-it-together
Production-Ready Python Microserviceshttps://realpython.com/python-microservices-grpc/#production-ready-python-microservices
Dockerhttps://realpython.com/python-microservices-grpc/#docker
Networkinghttps://realpython.com/python-microservices-grpc/#networking
Docker Composehttps://realpython.com/python-microservices-grpc/#docker-compose
Testinghttps://realpython.com/python-microservices-grpc/#testing
Deploying to Kuberneteshttps://realpython.com/python-microservices-grpc/#deploying-to-kubernetes
Python Microservice Monitoring With Interceptorshttps://realpython.com/python-microservices-grpc/#python-microservice-monitoring-with-interceptors
Why Not Decoratorshttps://realpython.com/python-microservices-grpc/#why-not-decorators
Interceptorshttps://realpython.com/python-microservices-grpc/#interceptors
Best Practiceshttps://realpython.com/python-microservices-grpc/#best-practices
Protobuf Organizationhttps://realpython.com/python-microservices-grpc/#protobuf-organization
Protobuf Versioninghttps://realpython.com/python-microservices-grpc/#protobuf-versioning
Protobuf Lintinghttps://realpython.com/python-microservices-grpc/#protobuf-linting
Type Checking Protobuf-Generated Codehttps://realpython.com/python-microservices-grpc/#type-checking-protobuf-generated-code
Shutting Down Gracefullyhttps://realpython.com/python-microservices-grpc/#shutting-down-gracefully
Securing Channelshttps://realpython.com/python-microservices-grpc/#securing-channels
AsyncIO and gRPChttps://realpython.com/python-microservices-grpc/#asyncio-and-grpc
Conclusionhttps://realpython.com/python-microservices-grpc/#conclusion
https://realpython.com/feedback/survey/article/python-microservices-grpc/liked/?from=article-sidebar
https://realpython.com/feedback/survey/article/python-microservices-grpc/disliked/?from=article-sidebar
Dan Hipschmanhttps://realpython.com/python-microservices-grpc/#author
https://realpython.com/python-microservices-grpc/#reader-comments
intermediatehttps://realpython.com/tutorials/intermediate/
dockerhttps://realpython.com/tutorials/docker/
flaskhttps://realpython.com/tutorials/flask/
Why Microservices?https://realpython.com/python-microservices-grpc/#why-microservices
Modularityhttps://realpython.com/python-microservices-grpc/#modularity
Flexibilityhttps://realpython.com/python-microservices-grpc/#flexibility
Robustnesshttps://realpython.com/python-microservices-grpc/#robustness
Ownershiphttps://realpython.com/python-microservices-grpc/#ownership
How Small Is “Micro”?https://realpython.com/python-microservices-grpc/#how-small-is-micro
The Microservice-Monolith Trade-Offhttps://realpython.com/python-microservices-grpc/#the-microservice-monolith-trade-off
Example Microserviceshttps://realpython.com/python-microservices-grpc/#example-microservices
Why RPC and Protocol Buffers?https://realpython.com/python-microservices-grpc/#why-rpc-and-protocol-buffers
Documentationhttps://realpython.com/python-microservices-grpc/#documentation
Validationhttps://realpython.com/python-microservices-grpc/#validation
Performancehttps://realpython.com/python-microservices-grpc/#performance
Developer-Friendlinesshttps://realpython.com/python-microservices-grpc/#developer-friendliness
Example Implementationhttps://realpython.com/python-microservices-grpc/#example-implementation
The RPC Clienthttps://realpython.com/python-microservices-grpc/#the-rpc-client
The RPC Serverhttps://realpython.com/python-microservices-grpc/#the-rpc-server
Tying It Togetherhttps://realpython.com/python-microservices-grpc/#tying-it-together
Production-Ready Python Microserviceshttps://realpython.com/python-microservices-grpc/#production-ready-python-microservices
Dockerhttps://realpython.com/python-microservices-grpc/#docker
Networkinghttps://realpython.com/python-microservices-grpc/#networking
Docker Composehttps://realpython.com/python-microservices-grpc/#docker-compose
Testinghttps://realpython.com/python-microservices-grpc/#testing
Deploying to Kuberneteshttps://realpython.com/python-microservices-grpc/#deploying-to-kubernetes
Python Microservice Monitoring With Interceptorshttps://realpython.com/python-microservices-grpc/#python-microservice-monitoring-with-interceptors
Why Not Decoratorshttps://realpython.com/python-microservices-grpc/#why-not-decorators
Interceptorshttps://realpython.com/python-microservices-grpc/#interceptors
Best Practiceshttps://realpython.com/python-microservices-grpc/#best-practices
Protobuf Organizationhttps://realpython.com/python-microservices-grpc/#protobuf-organization
Protobuf Versioninghttps://realpython.com/python-microservices-grpc/#protobuf-versioning
Protobuf Lintinghttps://realpython.com/python-microservices-grpc/#protobuf-linting
Type Checking Protobuf-Generated Codehttps://realpython.com/python-microservices-grpc/#type-checking-protobuf-generated-code
Shutting Down Gracefullyhttps://realpython.com/python-microservices-grpc/#shutting-down-gracefully
Securing Channelshttps://realpython.com/python-microservices-grpc/#securing-channels
AsyncIO and gRPChttps://realpython.com/python-microservices-grpc/#asyncio-and-grpc
Conclusionhttps://realpython.com/python-microservices-grpc/#conclusion
Remove adshttps://realpython.com/account/join/
basics of Pythonhttps://realpython.com/tutorials/basics/
web appshttps://realpython.com/flask-by-example-part-1-project-setup/
Click here to get the source code you’ll usehttps://realpython.com/bonus/python-microservices-code/
https://realpython.com/python-microservices-grpc/#why-microservices
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#modularity
send emailshttps://realpython.com/python-send-email/
https://realpython.com/python-microservices-grpc/#flexibility
Rubyhttps://www.ruby-lang.org/en/about/
PHPhttps://www.php.net/manual/en/intro-whatis.php
I/O boundhttps://en.wikipedia.org/wiki/I/O_bound
CPU boundhttps://en.wikipedia.org/wiki/CPU-bound
https://realpython.com/python-microservices-grpc/#robustness
https://realpython.com/python-microservices-grpc/#ownership
https://realpython.com/python-microservices-grpc/#how-small-is-micro
classhttps://realpython.com/python3-object-oriented-programming/#how-do-you-define-a-class-in-python
.read() and .write()https://realpython.com/read-write-files-python/#reading-and-writing-opened-files
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#the-microservice-monolith-trade-off
When To Use Microservices (And When Not To!)https://www.youtube.com/watch?v=GBTdnfD6s5Q
https://realpython.com/python-microservices-grpc/#example-microservices
define an APIhttps://realpython.com/api-integration-in-python/
https://files.realpython.com/media/microservices.78daee973cc1.png
protocol bufferhttps://developers.google.com/protocol-buffers
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#why-rpc-and-protocol-buffers
HTTP requesthttps://realpython.com/python-requests/
https://realpython.com/python-microservices-grpc/#documentation
Documentation is goodhttps://realpython.com/documenting-python-code/
https://realpython.com/python-microservices-grpc/#validation
Swaggerhttps://swagger.io/about/
RAMLhttps://raml.org/about-raml
Python REST APIs With Flask, Connexion, and SQLAlchemyhttps://realpython.com/flask-connexion-rest-api/
https://realpython.com/python-microservices-grpc/#performance
generally more efficienthttps://www.yonego.com/nl/why-milliseconds-matter/
HTTP/2https://en.wikipedia.org/wiki/HTTP/2
Python type hintshttps://realpython.com/python-type-checking/#hello-types
https://realpython.com/python-microservices-grpc/#developer-friendliness
functionshttps://realpython.com/defining-your-own-python-function/
debate over preferenceshttps://cloud.google.com/blog/products/api-management/understanding-grpc-openapi-and-rest-and-when-to-use-them
https://realpython.com/python-microservices-grpc/#example-implementation
virtual environmenthttps://realpython.com/python-virtual-environments-a-primer/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#the-rpc-client
TypeErrorhttps://realpython.com/python-traceback/#typeerror
importhttps://realpython.com/python-import/
https://realpython.com/python-microservices-grpc/#the-rpc-server
dictionaryhttps://realpython.com/python-dicts/
listshttps://realpython.com/python-lists-tuples/
contexthttps://grpc.github.io/grpc/python/grpc.html#grpc.ServicerContext
abort()https://grpc.github.io/grpc/python/grpc.html#grpc.ServicerContext.abort
min()https://realpython.com/python-min-and-max/
returnshttps://realpython.com/python-return-statement/
raise an exceptionhttps://realpython.com/python-exceptions/
terminalhttps://realpython.com/terminal-commands/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#tying-it-together
Flaskhttps://realpython.com/tutorials/flask/
globalshttps://realpython.com/python-scope-legb-rule/#modules-the-global-scope
https://files.realpython.com/media/marketplace-homepage.8a407ff88b80.png
Dockerhttps://realpython.com/docker-continuous-integration/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#production-ready-python-microservices
https://realpython.com/python-microservices-grpc/#docker
Python Docker Tutorialshttps://realpython.com/tutorials/docker/
official sitehttps://docs.docker.com/get-docker/
https://realpython.com/python-microservices-grpc/#recommendations-dockerfile
piphttps://realpython.com/what-is-pip/
TCP connectionshttps://en.wikipedia.org/wiki/Transmission_Control_Protocol
https://realpython.com/python-microservices-grpc/#marketplace-dockerfile
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#networking
https://realpython.com/python-microservices-grpc/#docker-compose
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#testing
unit testhttps://realpython.com/python-testing/
Nonehttps://realpython.com/null-in-python/
https://realpython.com/python-microservices-grpc/#deploying-to-kubernetes
Kuberneteshttps://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Docker Hubhttps://hub.docker.com/
Amazon’s ECRhttps://aws.amazon.com/ecr/
https://realpython.com/python-microservices-grpc/#kubernetes-configs
Deploymenthttps://kubernetes.io/docs/concepts/workloads/controllers/deployment/
Kubernetes documentationhttps://kubernetes.io/docs/home/
Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what?https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0
https://realpython.com/python-microservices-grpc/#deploying-kubernetes
Google Kubernetes Engine (GKE)https://cloud.google.com/kubernetes-engine
Amazon Elastic Kubernetes Service (EKS)https://aws.amazon.com/eks/
DigitalOceanhttps://www.digitalocean.com/products/
https://files.realpython.com/media/kubernetes-mac.a36802f7d5ee.png
minikubehttps://kubernetes.io/docs/tasks/tools/install-minikube/
start pagehttps://minikube.sigs.k8s.io/docs/start/
sign uphttps://m.do.co/c/dbc05eee48eb
create a Kubernetes clusterhttps://cloud.digitalocean.com/kubernetes/clusters/new
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#python-microservice-monitoring-with-interceptors
https://realpython.com/python-microservices-grpc/#why-not-decorators
decoratorhttps://realpython.com/primer-on-python-decorators/
DRY programming principlehttps://en.wikipedia.org/wiki/Don%27t_repeat_yourself
https://realpython.com/python-microservices-grpc/#interceptors
https://realpython.com/python-microservices-grpc/#implementing-interceptors
API for interceptorshttps://grpc.github.io/grpc/python/grpc.html#service-side-interceptor
incredibly flexiblehttps://github.com/grpc/proposal/blob/master/L13-python-interceptors.md#server-side-implementation
grpc-interceptorhttps://pypi.org/project/grpc-interceptor/
pytesthttps://realpython.com/pytest-python-testing/
Sentryhttps://sentry.io/features/stacktrace/
https://realpython.com/python-microservices-grpc/#testing-interceptors
Effective Python Testing With Pytesthttps://realpython.com/pytest-python-testing/
Understanding the Python Mock Object Libraryhttps://realpython.com/python-mock-library/
Istiohttps://istio.io/latest/docs/concepts/observability/
Remove adshttps://realpython.com/account/join/
https://realpython.com/python-microservices-grpc/#best-practices
https://realpython.com/python-microservices-grpc/#protobuf-organization
Python wheelhttps://realpython.com/python-wheels/
https://realpython.com/python-microservices-grpc/#protobuf-versioning
race conditionshttps://realpython.com/intro-to-python-threading/#race-conditions
https://realpython.com/python-microservices-grpc/#protobuf-linting
bufhttps://buf.build/docs/introduction
CI systemhttps://en.wikipedia.org/wiki/Continuous_integration
https://realpython.com/python-microservices-grpc/#type-checking-protobuf-generated-code
Python Type Checkinghttps://realpython.com/python-type-checking/#static-type-checking
pluginhttps://github.com/dropbox/mypy-protobuf
gRPC type stubshttps://pypi.org/project/grpc-stubs/
https://realpython.com/python-microservices-grpc/#shutting-down-gracefully
https://realpython.com/python-microservices-grpc/#securing-channels
TLShttps://en.wikipedia.org/wiki/Transport_Layer_Security
https://realpython.com/python-microservices-grpc/#tls-basics
How internet security works: TLS, SSL, and CAhttps://opensource.com/article/19/11/internet-security-tls-ssl-certificate-authority
https://realpython.com/python-microservices-grpc/#server-authentication
Docker documentationhttps://docs.docker.com/develop/develop-images/build_enhancements/#new-docker-build-secret-information
versioning policyhttps://github.com/moby/buildkit/issues/528
didn’t support build secretshttps://github.com/docker/compose/issues/6358
https://realpython.com/python-microservices-grpc/#mutual-authentication
Istiohttps://istio.io/latest/docs/concepts/security/
https://realpython.com/python-microservices-grpc/#asyncio-and-grpc
gRPC AsyncIO documentationhttps://grpc.github.io/grpc/python/grpc_asyncio.html
grpclibhttps://grpclib.readthedocs.io/en/latest/
requestshttps://realpython.com/python-requests/
run_in_executorhttps://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_in_executor
Getting Started With Async Features in Pythonhttps://realpython.com/python-async-features/
Python’s asyncio: A Hands-On Walkthroughhttps://realpython.com/async-io-python/
https://realpython.com/python-microservices-grpc/#conclusion
Click here to get the source code you’ll usehttps://realpython.com/bonus/python-microservices-code/
https://realpython.com/feedback/survey/article/python-microservices-grpc/liked/?from=article-footer
https://realpython.com/feedback/survey/article/python-microservices-grpc/disliked/?from=article-footer
https://realpython.com/team/dhipschman/
» More about Danhttps://realpython.com/team/dhipschman/
https://realpython.com/team/asantos/
Aldrenhttps://realpython.com/team/asantos/
https://realpython.com/team/damos/
Davidhttps://realpython.com/team/damos/
https://realpython.com/team/gahjelle/
Geir Arnehttps://realpython.com/team/gahjelle/
https://realpython.com/team/jjablonski/
Joannahttps://realpython.com/team/jjablonski/
https://realpython.com/team/jschmitt/
Jacobhttps://realpython.com/team/jschmitt/
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-microservices-grpc
Level Up Your Python Skills »https://realpython.com/account/join/?utm_source=rp_article_footer&utm_content=python-microservices-grpc
https://realpython.com/feedback/survey/article/python-microservices-grpc/liked/?from=article-comments
https://realpython.com/feedback/survey/article/python-microservices-grpc/disliked/?from=article-comments
LinkedInhttps://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Frealpython.com%2Fpython-microservices-grpc%2F
Twitterhttps://twitter.com/intent/tweet/?text=Interesting%20Python%20article%20on%20%40realpython%3A%20Python%20Microservices%20With%20gRPC&url=https%3A%2F%2Frealpython.com%2Fpython-microservices-grpc%2F
Blueskyhttps://bsky.app/intent/compose?text=Interesting%20Python%20article%20on%20%40realpython.com%3A%20Python%20Microservices%20With%20gRPC%20https%3A%2F%2Frealpython.com%2Fpython-microservices-grpc%2F
Facebookhttps://facebook.com/sharer/sharer.php?u=https%3A%2F%2Frealpython.com%2Fpython-microservices-grpc%2F
Get tips for asking good questionshttps://realpython.com/python-beginner-tips/#tip-9-ask-good-questions
get answers to common questions in our support portalhttps://support.realpython.com
Real Python Community Chathttps://realpython.com/community/
“Office Hours” Live Q&A Sessionhttps://realpython.com/office-hours/
intermediatehttps://realpython.com/tutorials/intermediate/
dockerhttps://realpython.com/tutorials/docker/
flaskhttps://realpython.com/tutorials/flask/
Python's asyncio: A Hands-On Walkthroughhttps://realpython.com/async-io-python/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-microservices-grpc
Logging in Pythonhttps://realpython.com/python-logging/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-microservices-grpc
Effective Python Testing With pytesthttps://realpython.com/pytest-python-testing/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-microservices-grpc
Python and REST APIs: Interacting With Web Serviceshttps://realpython.com/api-integration-in-python/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-microservices-grpc
Python Classes: The Power of Object-Oriented Programminghttps://realpython.com/python-classes/?utm_source=realpython&utm_medium=web&utm_campaign=related-post&utm_content=python-microservices-grpc
https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-microservices-grpc%2F
Continue »https://realpython.com/account/signup/?intent=continue_reading&utm_source=rp&utm_medium=web&utm_campaign=rwn&utm_content=v1&next=%2Fpython-microservices-grpc%2F
Sign-Inhttps://realpython.com/account/login/?next=/python-microservices-grpc/
Start Herehttps://realpython.com/start-here/
Learning Resourceshttps://realpython.com/search
Code Mentorhttps://realpython.com/mentor/
Python Referencehttps://realpython.com/ref/
Python Cheat Sheethttps://realpython.com/cheatsheets/python/
Support Centerhttps://support.realpython.com/
Learning Pathshttps://realpython.com/learning-paths/
Quizzes & Exerciseshttps://realpython.com/quizzes/
Browse Topicshttps://realpython.com/tutorials/all/
Live Courseshttps://realpython.com/live/
Bookshttps://realpython.com/books/
Podcasthttps://realpython.com/podcasts/rpp/
Newsletterhttps://realpython.com/newsletter/
Community Chathttps://realpython.com/community/
Office Hourshttps://realpython.com/office-hours/
Learner Storieshttps://realpython.com/learner-stories/
Plans & Pricinghttps://realpython.com/account/join/
Team Planshttps://realpython.com/account/join-team/
For Businesshttps://realpython.com/account/join-team/inquiry/
For Schoolshttps://realpython.com/account/join-team/education-inquiry/
Reviewshttps://realpython.com/learner-stories/
About Ushttps://realpython.com/about/
Teamhttps://realpython.com/team/
Mission & Valueshttps://realpython.com/mission/
Editorial Guidelineshttps://realpython.com/editorial-guidelines/
Sponsorshipshttps://realpython.com/sponsorships/
Careershttps://realpython.workable.com
Press Kithttps://realpython.com/media-kit/
Merchhttps://realpython.com/merch
https://www.youtube.com/realpython
https://x.com/realpython
https://www.linkedin.com/company/realpython-com
https://www.facebook.com/LearnRealPython
https://github.com/realpython/
Privacy Policyhttps://realpython.com/privacy-policy/
Terms of Usehttps://realpython.com/terms/
Securityhttps://realpython.com/security/
Contacthttps://realpython.com/contact/
https://realpython.com/

Viewport: width=device-width, initial-scale=1, shrink-to-fit=no, viewport-fit=cover

Robots: max-image-preview:large


URLs of crawlers that visited me.