Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

remove container style links #7787

Open
wants to merge 1 commit into
base: vNext
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 4 additions & 13 deletions modules/ROOT/pages/rest-alternatives.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,10 @@

Although REST is a widely adopted pattern for communications among microservices, Open Liberty supports alternative options that might be better suited for some application scenarios. These alternatives include GraphQl, gRPC, and WebSocket.

Despite the ubiquity of REST-style communication among microservices, REST comes with tradeoffs in capability and performance that can make it a less than ideal solution for some use cases. Issues such as over-fetching and under-fetching of data, lack of real-time communication, and tight coupling between client and server can lead to performance and maintenance concerns for certain types of applications. To address these issues, developers can use alternative protocols and technologies that specifically address the shortcomings of REST.
Despite the ubiquity of REST-style communication among microservices, REST comes with tradeoffs in capability and performance that can make it a less than ideal solution for some use cases. Issues such as over-fetching and under-fetching of data, lack of real-time communication, and tight coupling between client and server can lead to performance and maintenance concerns for certain types of applications. To address these issues, developers can use alternative protocols and technologies that specifically address the shortcomings of REST.

For example, GraphQL is an open source data query and manipulation language for APIs that directly addresses problems with over-fetching and under-fetching of data that might occur with REST APIs. Similarly, the WebSocket protocol enables real-time bidirectional communication between a server and one or more clients, which is not feasible in REST architecture.
For example, xref:microprofile-graphql.adoc[GraphQL] is an open source data query and manipulation language for APIs that directly addresses problems with over-fetching and under-fetching of data that might occur with REST APIs. Similarly, the xref:web-socket.adoc[WebSocket] protocol enables real-time bidirectional communication between a server and one or more clients, which is not feasible in REST architecture. High-performance applications that require high throughput and low latency can benefit from the efficient data serialization and multiplexing capabilities that xref:grpc-services.adoc[gRPC] provides.

Ultimately, the framework you choose depends on the specific needs of your application, including factors like performance requirements, data complexity, and the technologies you're already using.

The following topics provide information about REST alternatives that you can implement with Open Liberty.

xref:microprofile-graphql.adoc[Build GraphQL applications with MicroProfile GraphQL]::
MicroProfile GraphQL is an API for building services that exercise fine-grained control over the data that they request and receive. A GraphQL service can simplify data retrieval by collating data from multiple sources into a single object.

xref:grpc-services.adoc[Provide and consume gRPC services on Open Liberty]::
gRPC is an open source remote procedural call (RPC) framework that connects clients and services in language-agnostic way. You can provide and consume gRPC services from your web applications that run on Open Liberty.

xref:web-socket.adoc[Send bidirectional messages between services with WebSocket]::
The WebSocket protocol supports real-time bidirectional messaging between a client and server. The Open Liberty Jakarta WebSocket feature supports applications that use this protocol.

// assisted by watsonx with latest GenAI contribution: Granite-3-8b-instruct