Better Practices
Published in

Better Practices

How Postman Engineering does microservices

A microservices update about domain-driven squads, CDC testing, and happily ever after

Who is Postman Engineering?

the sheer beauty of Postman Engineering

With a microservice architecture, how do you organize your teams?

microservices deathstar
teams grouped by function, by product, or by workflow
examples of services produced by the squad owning the Identity domain
cross-functional squad focused on a domain

With a microservice architecture, how do you create and maintain new services?

Step 1 | Create a team workspace

a team workspace is the single source of truth for a service

Step 2 | Draft a blueprint collection to describe use cases

start with a proposed blueprint of the new service

Step 3 | Negotiate how the proposed service will function

threaded comments to negotiate the proposed service

Step 4 | Parallel development with mocks

paired requests and responses inform mocks which enable parallel development

With a microservice architecture, how do we know when there’s a breaking change?

CDC testing

consumer writes tests that are run as part of the producer’s CI pipeline

Continuous testing

continue running health and security checks on monitors
1) Newman to run tests on demand at build time, and 2) Monitors to run tests on a scheduled cadence

Is that happily ever after?

Conclusion

  • Dependencies on other squads require additional coordination. One squad’s roadmap might be blocked by another squad’s progress, or at least be subject to their service levels.
  • Squads are a relatively new concept at Postman, and each squad is independently figuring out what processes work best.
  • In domain-driven design, domains require constant evaluation. For example, squads focused on large domains that require a large share of responsibilities debate the trade-offs between managing a microservice vs. a monorepo vs. a monolith.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store