Feature: gRPC #341

Open
opened 2025-06-28 23:09:09 +00:00 by jamie · 0 comments
jamie commented 2025-06-28 23:09:09 +00:00 (Migrated from git.hazaar.io)

Problem Statement

Hazaar currently relies on traditional HTTP-based communication for server-to-server and microservice interactions. Modern microservice architectures often use more efficient communication protocols such as gRPC to achieve better performance, type safety, and interoperability between services. Investigating whether gRPC would be a valuable addition to Hazaar is necessary to ensure the framework stays competitive and scalable.

Who will benefit?

  • Developers building microservice architectures on Hazaar.
  • Teams requiring high-performance server-to-server communication.
  • Applications that benefit from strongly typed APIs with low-latency transport.

Benefits and risks

Benefits:

  • Potentially improved performance and reduced latency for inter-service calls.
  • Language-agnostic and strongly-typed APIs via protocol buffers.
  • Easier cross-language service integration.
  • Supports features like streaming and bi-directional communication.

Risks:

  • Adds complexity to the framework and learning curve for developers unfamiliar with gRPC.
  • Requires careful evaluation of PHP gRPC client/server support and its maturity.
  • Increased dependencies and possible compatibility issues.

Proposed solution

  • Create a research and feasibility task to investigate:
    • PHP support for gRPC servers and clients
    • Compatibility with Hazaar’s architecture
    • Performance gains over traditional HTTP APIs
    • Integration requirements with existing Hazaar routing and models
  • Produce a recommendation report based on findings.
  • If deemed beneficial, develop a module or integration for Hazaar that provides:
    • gRPC server handler
    • Client libraries
    • Developer tooling and documentation

Examples

  • Symfony has gRPC bridges available for inter-service communication.
  • Go and Java frameworks often use gRPC for microservices to improve performance and reliability.

Priority/Severity

  • High (This will bring a huge increase in performance/productivity/usability/legislative cover)
  • Medium (This will bring a good increase in performance/productivity/usability)
  • Low (anything else e.g., trivial, minor improvements)
## Problem Statement Hazaar currently relies on traditional HTTP-based communication for server-to-server and microservice interactions. Modern microservice architectures often use more efficient communication protocols such as gRPC to achieve better performance, type safety, and interoperability between services. Investigating whether gRPC would be a valuable addition to Hazaar is necessary to ensure the framework stays competitive and scalable. ## Who will benefit? - Developers building microservice architectures on Hazaar. - Teams requiring high-performance server-to-server communication. - Applications that benefit from strongly typed APIs with low-latency transport. ## Benefits and risks ### Benefits: - Potentially improved performance and reduced latency for inter-service calls. - Language-agnostic and strongly-typed APIs via protocol buffers. - Easier cross-language service integration. - Supports features like streaming and bi-directional communication. ### Risks: - Adds complexity to the framework and learning curve for developers unfamiliar with gRPC. - Requires careful evaluation of PHP gRPC client/server support and its maturity. - Increased dependencies and possible compatibility issues. ## Proposed solution - Create a research and feasibility task to investigate: - PHP support for gRPC servers and clients - Compatibility with Hazaar’s architecture - Performance gains over traditional HTTP APIs - Integration requirements with existing Hazaar routing and models - Produce a recommendation report based on findings. - If deemed beneficial, develop a module or integration for Hazaar that provides: - gRPC server handler - Client libraries - Developer tooling and documentation ## Examples - Symfony has gRPC bridges available for inter-service communication. - Go and Java frameworks often use gRPC for microservices to improve performance and reliability. ## Priority/Severity - [x] High (This will bring a huge increase in performance/productivity/usability/legislative cover) - [ ] Medium (This will bring a good increase in performance/productivity/usability) - [ ] Low (anything else e.g., trivial, minor improvements)
jamie self-assigned this 2025-09-04 01:10:08 +00:00
jamie removed their assignment 2025-09-04 01:13:37 +00:00
jamie self-assigned this 2025-09-04 01:13:44 +00:00
jamie removed their assignment 2025-09-04 01:13:49 +00:00
jamie self-assigned this 2025-09-04 01:13:54 +00:00
jamie removed their assignment 2025-09-04 01:14:01 +00:00
jamie self-assigned this 2025-09-04 01:14:07 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: hazaar/framework#341
No description provided.