diff --git a/docs/learning_grpc.md b/docs/learning_grpc.md
index 40491df..481efcd 100644
--- a/docs/learning_grpc.md
+++ b/docs/learning_grpc.md
@@ -6,10 +6,10 @@ Victor Martinez
# First, what is RPC?
-It stands for Remote Procedure Calls.
-
An idea to extend transfer of control and transmission of data from one machine to another.
+
+
[http://birrell.org/andrew/papers/ImplementingRPC.pdf](http://birrell.org/andrew/papers/ImplementingRPC.pdf)
note:
@@ -26,17 +26,6 @@ They aimed to provide secure communications with RPC.
Things were shared in plain non secured text.
-
-[1] WHITE, J. E. A high-level framework for network-based resource sharing. In Proc. National Computer Conference, (June 1976).
-
----
-
-
-
-[http://birrell.org/andrew/papers/ImplementingRPC.pdf](http://birrell.org/andrew/papers/ImplementingRPC.pdf)
-
-note:
-
The program structure would be based in the concept of Stubs.
Five pieces of program are involved when making an RPC call:
@@ -47,37 +36,7 @@ They auto-generated the client and server stubs:
`The user-stub and server-stub are automatically generated, by a program called Lupine.`
----
-## Interface Definition Language
-
-```thrift
-struct Phone {
- 1: i32 id,
- 2: string number,
-}
-
-service PhoneService {
- Phone findById(1: i32 id),
- list findAll()
-}
-```
-
-Codegen tools will generate gRPC stubs from IDL code
-
-An example of Thrift, an IDL used in Facebook's RPC framework
-
-[https://github.com/facebook/fbthrift](https://github.com/facebook/fbthrift)
-
-
-note:
-
-Many IDLs have been developed over time. Mozilla, Microsoft, IBM... and more developed their own internal RPC frameworks with their own IDLs [2]
-
-In the paper mentioned above, they wrote the interface using the Mesa interface modules feature:
-
-`This generation is specified by use of Mesa interface modules. These are the basis of the Mesa (and Cedar) separate compilation and binding mechanism [9]. An interface module is mainly a list of procedure names, together with the types of their arguments and results`
-
-[2] https://en.wikipedia.org/wiki/Interface_description_language
+[1] WHITE, J. E. A high-level framework for network-based resource sharing. In Proc. National Computer Conference, (June 1976).
---
@@ -182,9 +141,13 @@ https://protobuf.dev/
note:
+It is also developed by google.
+
Explain that it is the default binary serialization format supported by gRPC
-It is also developed by google.
+Many IDLs have been developed over time. Mozilla, Microsoft, IBM... and more developed their own internal RPC frameworks with their own IDLs [2]
+
+[2] https://en.wikipedia.org/wiki/Interface_description_language
---
@@ -197,6 +160,8 @@ It is also developed by google.
note:
+Explain what an IDL is
+
Here we will focus on the IDL and the tooling, we won't focus on the serialization format.
---
@@ -333,6 +298,86 @@ Explain that it builds on top of protoc. Be very short here, just mention the to
+---
+# Tower
+
+
+
+note:
+
+Tower is a library of modular and reusable components for building robust networking clients and servers.
+
+Tonic is built on top of Tower
+
+It's core abstraction is the Service, which we see in the next slide.
+
+It exposes already a set of basic reusable services to solve common networking patterns such as timeouts and rate limiting.
+
+---
+## Tower service
+
+```rust
+pub trait Service {
+ type Response;
+ type Error;
+ type Future: Future