(11) What is the advantage of using Thrift, as opposed to exposing an HTTP REST API? - Quora



(11) What is the advantage of using Thrift, as opposed to exposing an HTTP REST API? - Quora

Advantages of Thrift:

  • Thrift generates both the server and client interfaces for a given service, and in a consistent manner.  Client calls will be more consistent (and have rudimentary type/structure checking), and generally be less error prone.
  • Related to above: Thrift's RPC-like behavior means that you get type safety, exceptions are passed and handled in a sane manner, etc - you're not reinventing the wheel.
  • Thrift supports various protocols, not just HTTP.  If you are dealing with large volumes of service calls, or have bandwidth requirements, the client/server can transparently switch to more efficient transports (such as one of the binary transports).
  • Thrift is a mature piece of software; well tested and used.

Disadvantages:

  • Thrift is poorly documented.
  • It is more work to get started on the client side, when the clients are directly building the calling code.  It's less work for the service owner if they are building libraries for clients.
  • Yet another dependency.

The bottom line:

If you are providing a simple service & API, Thrift is probably not the right tool.

 If you are providing a complex and frequently changing service, Thrift will cut down the amount of time you spend iterating on both client and server interfaces. 

Finally, if your service is completely internal to your product/company, using Thrift will be a huge win as it cuts down barriers to communication from various languages and configurations.

Read full article from (11) What is the advantage of using Thrift, as opposed to exposing an HTTP REST API? - Quora


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts