Polling in software architecture, different types of polling, advantages, disadvantages, where to use and where not to use polling.

Ankur Agarwal
3 min readOct 11, 2023

--

Polling in software architecture refers to the process of regularly checking the state or availability of a resource or condition to determine if a specific action should be taken. It is a common mechanism used in various software systems to obtain or monitor information from external sources, such as sensors, APIs, or databases. Polling is particularly useful when a system needs to keep track of changes or updates in an asynchronous manner.

There are different types of polling, each with its own advantages and disadvantages:

  1. Regular Polling (Periodic Polling):

Advantages:

  • Simplicity: It is straightforward to implement and understand.
  • Predictable: You can control when the checks occur at fixed intervals.
  • Low network overhead: It minimizes the constant need for communication.

Disadvantages:

  • Inefficiency: If the polling interval is too short, it can lead to high resource usage.
  • Latency: Polling may not be real-time, and there can be delays in receiving updates.
  • Increased server load: Frequent polls can strain servers and networks.

Use Cases: Regular polling is suitable when real-time data is not critical, and a slight delay is acceptable, or when the server/resource being polled can handle the load without performance issues.

2. Long Polling (Comet or Hanging GET):

Advantages:

  • Reduced latency: Allows the server to respond immediately when new data is available.
  • Minimizes server load: Reduces the number of requests compared to regular polling.
  • Suitable for real-time applications.

Disadvantages:

  • Complex server-side implementation.
  • Potential connection timeouts and re-establishment overhead.

Use Cases: Long polling is useful for real-time applications like chat services or collaborative tools where low latency is critical.

3. Server-Sent Events (SSE):

Advantages:

  • Real-time updates: Provides a continuous stream of updates from the server.
  • Simplicity: Easier to implement than WebSockets.
  • No need for frequent reconnections.

Disadvantages:

  • Limited browser support (not suitable for all clients).
  • Unidirectional communication (server to client only).

Use Cases: SSE is ideal for applications that require real-time updates in a unidirectional manner, such as news feeds or live scoreboards.

4. WebSockets:

Advantages:

  • Full-duplex communication: Allows bi-directional data exchange in real-time.
  • Low latency and reduced network overhead.
  • Suitable for a wide range of real-time applications.

Disadvantages:

  • Complex server and client implementations.
  • May not be suitable for all use cases due to its complexity.

Use Cases: WebSockets are well-suited for real-time applications like online gaming, collaborative editing, and instant messaging.

When to use which polling method:

  • Use Regular Polling when you can tolerate some delay in data updates, and minimizing server load is not a primary concern.
  • Use Long Polling when low latency is important, and you want to reduce the number of requests to the server, but you can handle the complexity of server-side implementation.
  • Use Server-Sent Events (SSE) when you need real-time updates in a unidirectional manner and have clients that support SSE.
  • Use WebSockets when you need full-duplex, bi-directional, real-time communication between clients and the server. However, consider the added complexity of implementation.

Where not to use polling:

  • Avoid polling when real-time updates are absolutely critical, and even a small delay is unacceptable. In such cases, consider using WebSockets or other real-time communication mechanisms.
  • Don’t use polling for resources that cannot handle the constant load it generates, as it may lead to performance issues on the server.

--

--

No responses yet