Web Services vs Microservices

Microservices start where Web services where end.

Web services

  • Web services are meant to be exposed to the public
  • interactive
  • request/reply (pull-based). However, it can be also push-based (e.g. Web sockets)
  • synchronous
  • long-lived process (HTTP-based)
  • transactional
  • user-facing aka user response loop
  • transactions are meant to be processed by an RDBMS (think of ATM transaction)

Microservices

  • microservices reside in a private subnet
  • post-authentication
  • asynchronous
  • background tasks
  • tasks must be short-lived
  • can be parallel
  • messages can be anything and serve as input for tasks (or consumers)
  • task flow can be drawn as a pipeline (serves as control plane)
  • producer may send more than once duplicate messages
  • consumer is responsible for idempotency (processing duplicate messages)
  • the middleman between the producer and consumer is the message queue broker
  • issues to be tackled (retry, high water mark, backpressure, possibility of message loss, use of persistence to avoid message loss, etc)
  • in essence, a microservice is composed of a producer, a router and a consumer
Advertisements

Subjectivity aside, leave a reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s