In a recent MIT experiment, three student teams were asked to write software code in Fortran, a programming language none of them knew. The results were pretty interesting:

The team using ChatGPT finished the fastest
The team using a specific AI coding assistant (Code Llama) came in second
The team using just Google search finished last, breaking down the task into comp`onents and solving it the old-fashioned way.

However, when tested on their ability to recall the solutions from memory, the situation was reversed. The ChatGPT team remembered nothing and failed, while half of the Code Llama team passed, and every student in the Google Search team succeeded.

The conclusion from this experiment is simple: there is no substitute for hard work Don’t just rely on AI tools; learn to code, crash, debug, and repeat.

I believe there are several vulnerabilities in our election process and there are several obvious solutions. Unfortunately, neither party is interested in fixing the obvious issues, making it patently obvious (to me) that the system is designed to be gamed and both sides are gaming it.
I don’t believe this is a partisan issue.

Here are some ideas for fixing the obvious vulnerabilities in our voting system:

  1. Voting day should be a national holiday – no one should have to work on election day. This allows everyone to go in person to vote.
  2. Voting should be done in person on paper with proof of Id/US citizenship. If you need to vote remotely it should be done in advance so that there will be time to tally remote ballots in time for the actual election day. There is no late or last minute remote voting permitted. If you can’t vote by the deadline then you missed your chance to vote.
  3. Anyone needing to vote remotely must have a valid reason for doing so such as being stationed overseas in the military or being physically disabled and unable to attend a vote in person. Those who claim to be physically disabled will have to provide certified evidence/documentation of their disablement.
  4. All voting places will have at least 2 observers, representing the interests of each party. The observers would have full access to the entire voting process from end to end, from the ballots used to the actual tallying process.
  5. Voting ballots from each voting location will be preserved until the election has been certified as valid by both associated observers.
  6. Registering to vote requires showing an ID that proved citizenship. Non-citizens are not permitted to vote.
  7. The format and wording of the ballots will be identical across all states. If ballots need to be translated into other languages these translations will be observed and approved by the observers. The wording and structure of the ballots will be approved by both parties at least a month in advance of election day. Printing and delivery of ballots needs to be completed at least 2 weeks prior to election day. Voting locations will have the ability to print out additional ballots if needed in front of the observers if they run out of ballots. The ballots will be in a protected format, preventing them from being modified prior to printing. The number of times additional ballots are printed will be tracked and a justification for printing additional ballots must be provided and approved by the observers.
  8. Each voting location is required to make their final tallys available by the end of the day, preferably by the end of the business day. Any additional auditing will be done and observed by both parties. Any questionable ballots will be reviewed and approved by both observers. Any ballots that cannot be agreed upon will be discarded – if it’s not abundantly clear who the voter was voting for the ballot should not be counted.

These are some very simple steps to take and would remove much of the fraud that, in my opinion, continues to happen in each election. Of course none of these things will happen and we will continue to limp along with the existing system we have in place.

Resources

James Chapter 2

  • In Chapter 1, James compared the absurdity of hearing the Word, then ignoring it, to a man looking at his face in a mirror and then immediately forgetting what he looks like. In chapter 2, James urges readers not to show favoritism or partiality.
  • This Chapter includes the controversial view that it is not enough to simply have “belief” in God. James says any religious “faith” which doesn’t result in good works is a dead faith. Some think this is a contradiction to the teachings of Paul who taught that faith alone results in salvation.
    • James clarifies that “faith” that cannot save is nothing more than an intellectual belief – one who claims to have faith in Christ but doesn’t behave like a Christian will not be saved. True faith saves, but it also results in works.
    • Paul emphasizes the “cause,” which is trusting faith while James emphasizes the “effect,” which is good works. James stresses that so-called-“faith”, which is merely mental agreement and does not produce good and loving works and is not a genuine, saving faith.
    • James summarizes this with the explicit comparison to a dead body. A body which exhibits no spirit or breath is not alive. In the same way, a “faith”—in this case, meaning “intellectual belief”—with no resulting works is also dead.
  • Paul teaches that we are saved by faith alone, but James clarifies that the faith that saves is never alone—works always accompany it.

Group Discussion:

  • Understanding the relationship between faith and works in James 2 and Ephesians 2 can be challenging, but it’s important to see how they complement rather than contradict each other.
    • Ephesians 2:8-9 (CSB) states:
      “For you are saved by grace through faith, and this is not from yourselves; it is God’s gift—not from works, so that no one can boast.”
    • James 2:24 (CSB) says:
      “You see that a person is justified by works and not by faith alone.”
  • Here’s how these passages work together:
    • Context and Audience:
      • Ephesians 2: Paul is addressing believers who might think they can earn salvation through their own efforts. He emphasizes that salvation is a gift from God, received through faith, not something we can achieve by our works.
      • James 2: James is speaking to those who claim to have faith but show no evidence of it in their actions. He stresses that genuine faith will naturally produce good works.
    • Purpose of Faith and Works:
      • Paul: Focus is on salvation. He clarifies that we are saved by grace through faith alone, not by our works. This ensures that no one can boast about earning their salvation.
      • James: Emphasis is on the evidence of salvation. He argues that true faith will be demonstrated through actions. If someone claims to have faith but has no works, their faith is dead and useless2.
    • Complementary Teachings:
      • Paul and James do not contradict each other, but address different issues.
        • Paul is concerned with how we are saved (by grace through faith)
        • James is concerned with what true faith looks like (it produces good works).

Notes from the Video: James for Men Bible Study Guide

  • Based on Vince Miller’s James for Men Bible Study Guide
  • The evidence of inconsistency
  • Do not play favorites in the church
  • We sometimes may favor a rich man over a poor man – favoritism implies rewards
  • We want to be rewarded by those we favor
    • This is a form of cronyism
  • James is concerned about cronyism and favoritism in the church
    • 2:6-7 – the rich are the ones who oppress you
    • the payoff for favoritism is falsehood and oppression
  • Consistent problem of sin
    • We consistently act with sin by playing favorites
    • Whoever keeps the whole law but fails in one point fails the whole law
    • Sin applies to all – rich and poor. This means everyone is in need of God’s mercy
    • We defeat sin with consistent faith
    • Even demons believe in God and they shudder about it.
    • Abraham had the ultimate faith in God and was willing to sacrifice his son over it.
      • Abraham’s offering of Isaac is an example of a consistent faith
  • We are justified by works and not by faith alone.
    • Faith + ACTION enables the world to witness your faith.
    • Sadly, we are INCONSISTENT with whom we bring the Gospel to
    • We eradicate INCONSISTENCIES with a CONSISTENT faith
    • Consistent faith is infused with action
    • Our consistent works evidence consistent faith
  • How to build consistency:
    • Recall the law of sin
    • Live out your belief
    • Let your consistency be a witness for God in this world
    • Be a CONSISTENT man of God
  • How can you be more consistent?

Notes from the Revival School video on James 2:

  • Do not show favoritism – share the gospel with EVERYONE!
    • be careful not to favor the rich or those you know when sharing the gospel
  • 4 Reasons why we should not play favorites
    • God has accepted many poor people as His own
    • the rich often persecute Christians (this is still happening today)
    • playing favorites violates Jesus’ law of love
    • God will judge those who violate the law of love
  • God wants us to be rich in faith, not in material things
  • The rich frequently blaspheme the “noble name” that was pronounced over you as a believer in Christ
  • Keep the royal law: love your neighbor as yourself – both the rich and the poor
  • If you show favoritism you commit sin and are convicted by the law as transgressors
    • Whoever keeps the entire law yet fails in one area fails the entire law
      • The whole law is an expression of God’s will for His people
      • show love to all – then mercy will triumph
  • Speak and act as those who will be judged by God’s law – this is more important than worrying about what the world thinks of you
    • Act like you are God’s children, not in this world
  • Martin Luther broke away from the Catholic church and said we are saved through faith alone
    • Martin Luther called the book of James “an epistle full of straw”
    • Martin Luther disagreed with what James wrote about works
  • We fully believe we are saved through faith alone – but not to the point of removing James from the Bible
    • James is going after those who claim they don’t need to do good deeds because they already have faith
  • If you have faith works naturally flows out of it
    • faith and works are not enemies
      • true faith and righteous works go hand in hand
      • faith motivates good works
      • good works brings people to the faith
  • Faith is the cause, Works is the effect
    • This means faith without works is dead by itself
  • Even demons believe and shudder at the diety of Christ (see Mark 3)
    • while they believe they obviously aren’t doing good works
  • Your faith gives you the desire to do good works (share the gospel)
    • if you aren’t working and walking out your faith how real is it?
    • see Matthew 7:23
  • You are living out your faith if you are doing good works
  • We’re saved by faith alone – but you gotta do something with that faith

Resources

About James

  • The book of James is about specifically understanding what saving faith looks like. How does faith in Christ reveal itself in a believer’s life? What choices does real trust in God lead us to make? Those are the questions James answers.
  • It’s important to note that James is writing to people who already believe in Christ as their Savior. This ensures we are reading the Book of James in the proper context.
  • Most scholars believe the writer was Jesus’ half-brother, a son born to Joseph and Mary after Jesus’ birth.
  • James may not have come to believe Jesus was the Messiah until after the resurrection. Eventually, though, he became one of the leaders of the Christian church in Jerusalem.
  • This is possibly the earliest-written of all the New Testament books, around AD 40–50. James addresses his letter to Jewish Christians scattered around the known world.

James Chapter 1

  • The first chapter in the book of James sets the course for the rest of his letter to Christians worldwide.
  • God wants us to trust Him more, and more deeply, as we learn more of Him.
  • This is so important to God that He calls on us to find joy, even in hard times, because hardship helps us trust God more. Those who really trust God will ask Him for wisdom, will be excited about their status in eternity, will recognize Him as the source of all good in their lives, and will work to act on what they find in His Word.

Video: James for Men Bible Study Guide

Reflection:

  • What’s a trial you’ve had to endure lately?
  • How are you handling this?
  • What could you do to improve how you are handing
    this?
  • What is God teaching you through it?

Resources

  • Romans overview (video): Part 1, Part 2
  • Romans is structured as follows:
    • Books 1-4: Revealing God’s Righteousness
    • Books 5-8: Creating a New Humanity
    • Books 9-11: Fulfilling God’s Promise to Israel (Past/Present/Future)
    • Books 12-16: Unifying the Church

Romans 13: Unifying the Church

Context

  • Romans 13 covers three important points:
    • God puts every human authority in place to serve His purposes. This means Christians must submit to them
    • We must love our neighbors as ourselves.
    • We are called to live as people of the light and throw off works of darkness (drunkenness, sexual immorality, and jealousy).
  • Christians are to submit to earthly authorities because God put them there. To improperly resist authority, then, is to resist God (Romans 13:1–2).
  • I thought this seemed to contradict other parts of the Bible:
    • midwives who wouldn’t kill babies in defiance of the law (Exodus)
    • Daniel kneeling down in front of a window and praying in defiance of the law
    • Shadrach, Meshach and Abednego won’t bow down to the golden statue despite the king telling them to do so
    • In Acts 5:29 Peter says we must obey God rather than any human authority.
  • Does Romans 13:1–7 mean civil disobedience is always wrong for Christians? Why would Paul write this?
    • Paul knew Caesar was going to read his letter and he wanted to make sure the ruling authorities in Rome would know Christians are not anarchists.
    • Here is some helpful guidance from John Piper.
      • “Don’t get your back up so easily, because being wronged by a government sends nobody to hell, but being rebellious and angry and bitter and spiteful does send people to hell. And so it is a much greater evil for you to be rebellious than of the government to mistreat you.
  • Christians are called to have a submissive spirit and follow leadership but this is not absolute.
  • God defines the limits of leaders and when these limits violate scripture, we are to follow God, not man.

Notes and Discussion

  • Once you put your faith in Christ you are justified – one and done.
  • How do we interact with our government?
    • the word of God tells us what we’re supposed to do
  • God is the ultimate authority, regardless of what country or government you live under
    • Followers and leaders are accountable to God
    • The ones who resist authority are in opposition to God’s command
      • This means we shouldn’t disrespect our government leaders even if we disagree with them politically.
      • The scripture says if we oppose authority judgment will come upon us.
  • God uses government to carry out His good purposes on earth.
    • Some governments persecute those who do good. Typically the law breakers have a problem, not the law-abiding citizens.
  • Government is God’s servant for your good.
    • If you go against the government they can punish you.
    • Government is God’s servant. This applies no matter who is in office.
    • If the government wants you to do things that go against the scriptures you might be punished by the government since God is the ultimate authority, not government.
  • Obedience is a matter of inner convictions as well as external law.
  • As believers we serve the highest of all authorities: God Himself.
  • Christians are called to have a submissive spirit and follow leadership but this is not absolute.
  • God defines the limits of leaders and when these limits are violated or government laws violate scripture, we are to follow God, not man. 
  • We seemed to focus mostly on the first of the three points that Romans 13 covers. We must not forget the other two points:
    • Love our neighbors as ourselves.
    • We must live as people of the light and throw off works of darkness (drunkenness, sexual immorality, and jealousy).

Resources

  • Romans overview (video): Part 1, Part 2
  • Romans is structured as follows:
    • Books 1-4: Revealing God’s Righteousness
    • Books 5-8: Creating a New Humanity
    • Books 9-11: Fulfilling God’s Promise to Israel
    • Books 12-16: Unifying the Church

Romans 8: Creating a New Humanity

Context

Romans 8 is a powerful and uplifting chapter that follows the internal struggle described in Romans 7.

Here are the key points

  1. Freedom in Christ
    • The chapter opens with a declaration of freedom from condemnation for those in Christ Jesus (v. 1).
    • This freedom is not from temptation or trials, but from the guilt and penalty of sin.
  2. Life by the Spirit
    • Romans 8 emphasizes living by the Holy Spirit, who empowers believers to overcome sin (v. 2).
    • This contrasts with living by the “flesh” (our sinful nature) described in Romans 7.
  3. Adoption as Sons of God
    • Believers are adopted as God’s children, enjoying a special relationship with Him (vv. 15-17).
    • This adoption brings confidence and security.
  4. Future Glory
    • The chapter speaks of the future glory that awaits believers, even though they may face suffering in the present (vv. 17-18).
    • Our suffering is temporary, but the glory is eternal.
  5. Creation’s Groaning
    • Romans 8 mentions creation itself groaning and waiting for its redemption (vv. 19-22).
    • This suggests that the effects of sin extend beyond humanity and impact the entire world.
  6. God’s Unfailing Love
    • Throughout the chapter, the emphasis is on God’s unfailing love for His children.
    • Nothing can separate us from His love, not even tribulation, distress, or death (vv. 35-39).

Notes

  • To be added

Group Chat

  • I missed this meeting because I was out of town.

Summary

  • Faith in Jesus Christ brings freedom from condemnation and empowers us to live a Spirit-filled life.
  • We are God’s adopted children, secure in His love.
  • While challenges may exist, we have the hope of future glory.
  • God’s love for His children is constant and unfailing.

Romans 8 offers a message of hope and assurance to believers, even in the midst of struggle.

 

Last year Amazon announced they would start running ads on Amazon Prime Video starting in early 2024.

If you are still subscribed to Prime, contact your credit card provider and ask for chargebacks extending back to March 2024. This should be possible because Amazon violated their customer contract and is no longer providing the service you originally wanted. They shouldn’t be charging the same price while providing a lower grade of service. You deserve a refund.

“To continue investing in compelling content and keep increasing that investment over a long period of time, starting in early 2024, Prime Video shows and movies will include limited advertisements.”

Source: Amazon shares an update on Prime Video, introduces limited ads

Resources

  • Romans overview (video): Part 1, Part 2
  • Romans is structured as follows:
    • Books 1-4: Revealing God’s Righteousness
    • Books 5-8: Creating a New Humanity
    • Books 9-11: Fulfilling God’s Promise to Israel
    • Books 12-16: Unifying the Church

Romans 7: Creating a New Humanity

Context

  • Romans 7 delves into the struggle between the desires of the flesh (human nature) and the desires of the Spirit (God’s influence) within a believer. Here are the key points:
    • The Law’s Powerlessness:
      • Paul starts by explaining that the Law (God’s commandments) has no power over a dead person (vv. 1-4). This analogy applies to our old sinful nature, which has been crucified with Christ (Romans 6).
      • The Law exposes sin but cannot provide the power to overcome it (vv. 7-13).
    • The Internal Conflict:
      • Paul describes his own internal struggle between wanting to do good (following the Law) and being drawn towards sin by his flesh (vv. 14-23).
      • He uses the metaphor of being a slave to sin (v. 14).
    • A Longing for Deliverance:
      • The chapter ends with a cry of desperation, yearning for deliverance from this internal conflict (v. 24).
  • Important Points to Consider:
    • This passage doesn’t describe the life of a victorious Christian, but rather the ongoing battle between the desires of the flesh and the Spirit.
    • Romans 8 provides the answer to this struggle, highlighting the power of the Holy Spirit to enable believers to live according to God’s will.
  • Interpretations:
    • There are different interpretations on whether Romans 7 describes a believer before or after conversion.
    • Some see it as Paul reflecting on his pre-Christian life.
    • Others believe it represents the ongoing struggle even for Christians.
  • Overall Message:
    • Romans 7 offers a realistic portrayal of the Christian’s struggle with sin. It emphasizes our desperate need for God’s grace and the power of the Holy Spirit to live a life pleasing to Him.
  • In Christ, we have also died to our obligation to follow the law of Moses. Paul makes clear, though, that the law is holy and good because it reveals to us just how sinful we are.
  • Paul describes how his failed attempts to follow the law convinced him more fully of his need to be delivered from his sinfulness by God through faith in Christ.

Notes

  • We are supposed to be dead to sin – we should try to be free from sin. When you give your life to Jesus you should try very hard not to sin (although it’s impossible for man to avoid all sin).
  • We are DEAD to sin… So why do we live in sin?
    • We don’t have an excuse.
    • We CAN avoid sinning…. but we typically do not
  • v1-2: as long as man lives, the LAW has dominion
    • In a marriage, you are bound by law to the covenant
    • If one or the other dies, the other is free from that covenant
  • v3: Once the husband dies, the wife can remarry
  • v4: We died to the law. We now have a covenant with God in Christ.
  • v5: We have become dead to the Old Covenant (Moses’ laws).
    • When we were controlled by our old nature, sinful desires were at work within us, and the law aroused these evil desires that produced a harvest of sinful deeds, resulting in death.
  • v6: We have been released from the law, for we died to it and are no longer captive to its power. Now we can serve God, not in the old way of obeying the letter of the law, but in the new way of living in the Spirit.
    • We are now a slave to God and can serve in the newness of the Spirit and not of the old law.
    • Galations 2:18: Rather, I am a sinner if I rebuild the old system of law I already tore down.
  • v7: Well then, am I suggesting that the law of God is sinful? Of course not! In fact, it was the law that showed me my sin. I would never have known that coveting is wrong if the law had not said, ‘You must not covet.’
  • v8: But sin used this command to arouse all kinds of covetous desires within me! If there were no law, sin would not have that power.
      • Before the 10 Commandments there was no law against coveting.
  • v12: But still, the law itself is holy, and its commands are holy and right and good.
    • The law is not sinful. We should not continue to sin. We are supposed to be dead to sin.
    • If we’re not careful we can fall back into sin. 
  • v13: But how can that be? Did the law, which is good, cause my death? Of course not! Sin used what was good to bring about my condemnation to death. So we can see how terrible sin really is. It uses God’s good commands for its own evil purposes.
  • v14: So the trouble is not with the law, for it is spiritual and good. The trouble is with me, for I am all too human, a slave to sin.
  • v15: I don’t really understand myself, for I want to do what is right, but I don’t do it. Instead, I do what I hate.
  • v16: But if I know that what I am doing is wrong, this shows that I agree that the law is good.
  • v17: So I am not the one doing wrong; it is sin living in me that does it.
    • We must be disciplined and try hard not to sin.
  • v18: And I know that nothing good lives in me, that is, in my sinful nature. I want to do what is right, but I can’t.
  • v19 I want to do what is good, but I don’t. I don’t want to do what is wrong, but I do it anyway.
  • v20: But if I do what I don’t want to do, I am not really the one doing wrong; it is sin living in me that does it.
  • v21: I have discovered this principle of life — that when I want to do what is right, I inevitably do what is wrong.
  • v22: I love God’s law with all my heart.
  • v23: But there is another power within me that is at war with my mind. This power makes me a slave to the sin that is still within me.
  • v24: Oh, what a miserable person I am! Who will free me from this life that is dominated by sin and death?
    • God calls us to live without sin but since we are human we will inevitably fall back into it – this is why we need Jesus.
    • The less time we spend in the word and prayer the more likely we are to fall back into sin.
  • v25: Thank God! The answer is in Jesus Christ our Lord. So you see how it is: In my mind I really want to obey God’s law, but because of my sinful nature I am a slave to sin.
    • Galatians 5:16:  So I say, let the Holy Spirit guide your lives. Then you won’t be doing what your sinful nature craves.
      • If we walk in the spirit we are less likely to fall back into sin.
    • Galatians 5:22: But the Holy Spirit produces this kind of fruit in our lives: love, joy, peace, patience, kindness, goodness, faithfulness.
    • Galatians 5:24: Those who belong to Christ Jesus have nailed the passions and desires of their sinful nature to his cross and crucified them there.
      • If we live in the spirit we will not fall back into sin. When we don’t walk in the spirit we will fall back into sin.

Group Chat

  • We are free in Christ – what does this mean?
    • We are free to choose life in Christ instead of death in sin.
    • Before being born again we know what is right and wrong but we didn’t have the “helper” of the Holy Spirit guiding us.
    • Once the Holy Spirit is in your heart it can help you turn from sin.
    • God cannot sin – He cannot choose to sin. In some ways this means we are more free than God. This is, however, not possible – we can never have more privilege than God.
    • If we do good before we’re saved we’re still under the penalty of the original sin. This penalty has been taken away from us because of our faith in Christ.
    • Before we’re saved we’re NOT free to live in Christ. After we’re saved we ARE free to live in Chirst and to do His bidding.
      • This is what Paul is addressing in Romans 7.
  • As we pursue Christ more and more, our tendancy to sin will be reduced.

Summary

  • Two options to capture the essence of Romans 7 in one or two words:
    • Internal Conflict: This highlights the internal struggle between wanting to do good and the pull towards sin described in the chapter.
    • Law’s Powerlessness: This emphasizes the chapter’s theme of the Law’s inability to bring about true righteousness.

Recycling and some older guidance…. I hope this helps someone.

TLDR;

  • When Should You Use REST?
    • Most used for building microservices-based infrastructures. 
      • Any time you plan to build an app or a larger computer system that requires connecting microservices, REST is the most common choice.
    • Best for externally-facing APIs. 
      • If you need standardized HTTP protocol, high-speed iteration, and multi-language microservices connected, then REST should be your main choice. 
    • Universal support with third-party tools, so are ideal for everything from apps to web services.
  • When Should You Use gRPC?
    • Best for building internal systems where tighter coupling is not an issue. 
    • Useful for connecting architectures that consist of lightweight microservices where the efficiency of message transmission in a multilingual environment is most important.
    • When real-time communication is required.  
    • When used over low-power, low-bandwidth networks
      • An IoT network would benefit more from gRPC than REST.

REST vs gRPC 

    • gRPC is a high-performance, binary, strongly-typed protocol using HTTP/2.
      • gRPC is a high-performance, open-source framework developed by Google for efficient communication between services using a binary protocol (Protocol Buffers) and HTTP/2
        • Protocol Buffers are the Interface Definition Language (IDL) used to describe service interfaces and payload message structures.
      • gRPC is based upon the RPC (Remote Procedure Call) paradigm
        • An RPC API request to delete a resource with the id of “2” might use the HTTP verb POST with a /deleteResource URL with query string of { “id”: 2 }   
      • gRPC supports bidirectional streaming since it uses HTTP/2.
      • gRPC APIs use their own Protoc Compiler which enables you to create your own code. 
        • Protoc Compilers work in multiple languages and can be used in polyglot environments (groups of microservices can run on separate platforms and be coded in different languages).
        • Protoc Compilers compile .proto files, which contain service and message definitions.
        • Protoc Compilers support the following languages:
    • REST is a simpler, stateless protocol using HTTP 1.1 with text-based JSON/XML messages
      • REST is a more established, text-based approach leveraging standard HTTP methods for building web APIs.
      • REST follows the architectural constraints of the Representational State Transfer model. 
        • Standard HTTP methods are used with Uniform Resource Identifiers (URIs) to communicate requests and responses between a client and a server.
        • Each URI describes a self-contained operation and contains all the information needed to satisfy the request.
        • A REST API request to delete a resource with the id of “2” could use an URL with the HTTP DELETE verb: DELETE /resource/2.
      • REST is limited to request-response communication patterns since it uses HTTP 1.1
Characteristic gRPC REST API
HTTP Protocol HTTP 2 HTTP 1.1
Messaging Format Protobuf (Protocol Buffers) – binary JSON (usually) or XML and others – text
Code Generation Native Protocol Compiler Third-Party Solutions Like Swagger
Communication Unary Client-Request or Bidirectional/Streaming Client-Request Only
Receiving Data 7 times faster than REST 7 times slower than gRPC
Sending Data 10 times faster than REST 10 times slower than gRPC
Implementation Time 45 Minutes 10 Minutes

Protocol Buffers vs XML/JSON

  • XML/JSON
    • Platform and language agnostic 
    • Messages are human-readable and communicate structured data 
  • Protocol Buffers 
    • Platform and language agnostic 
    • Not human readable but highly efficient
      • Serializes and deserializes structured data to communicate via binary
      • Uses a highly compressed format
      • Much faster – focuses strictly on serializing and deserializing data 
      • Reduced message sizes

HTTP 1.1 vs HTTP/2

  • HTTP 1.1
    • The standard for communication on the web. 
    • Relays information between a computer (client) and a web server (server), which may be local or remote. 
    • Client sends text-based request and a resource (web page, PDF, message, etc) is returned from the server. 
    • Does not support streaming – request/response only.
  • HTTP/2
    • Supported by most modern browsers in addition to HTTP 1.1.
    • HTTP/2 uses binary messages instead of plain text smaller packages, faster throughput).
    • HTTP/2 reduces network delay through the use of multiplexing (enables multiple requests to fire simultaneously on the same connection, receiving requests back in any order).
    • Supports 3 types of streaming:
      • Server-side (long running process on server over a single connection – server updates client with progress and final result):
        1. A client sends a request message to a server. 
        2. The server returns a stream of responses back to the client. 
        3. After completing the responses, the server sends a status message (and, in some cases, trailing metadata), which completes the process. 
        4. After receiving all of the responses, the client completes the process. 
      • Client-side (client sends multiple requests to server over a single connection, server sends back response when all requests are done): 
        1. A client sends a stream of request messages to a server. 
        2. The server returns one response back to the client. It (usually) sends the response after receiving all of the requests from the client and a status message (and sometimes trailing metadata). 
      • Bi-directional (chatty – controlled by the client): 
        1. A client and server transmit data to one another in no particular order. 
        2. The client is the one that initiates this kind of bidirectional streaming.
        3. The client ends the connection.