Our new article on writing event-driven microservices using Kafka and Rust is ready ๐
Learn about rdkafka, setting up Kafka locally, producers & consumers as well as migrating from a monolith using Change Data Capture!
Check it out: https://t.co/TikIOHvdpI
@ThisWeekInRust
Did you know rust-analyzer can convert JSON into Rust structs? Simply paste your JSON into a Rust file and run the `convert JSON to struct` code action.
What is gRPC?
gRPC is a high-performance, open-source remote procedure call framework initially developed by Google. It leverages HTTP/2 for transport, Protocol Buffers as the interface description language, and provides features such as authentication, load balancing, and more.
Key Features of gRPC:
- Speed - gRPC is built on HTTP/2 and Protobufs for high throughput and low latency.
- Efficiency - The compact Protobuf binary format means smaller payloads than JSON.
- Type Safety - Protobufs are strongly typed.
- Polyglot - Write services in many popular languages.
- Great Ecosystem - Many tools for code gen, load balancing, monitoring, and more.
Drawbacks of gRPC:
- More Complex - Defining Protobuf schemas and setting up gRPC can have a learning curve.
- Not Human Readable - Protobufs are binary, so not as easy to troubleshoot as JSON.
- Limited Browser Support - gRPC works best for backend microservices, not front-end apps.
โ
Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): https://t.co/kNfv0DVDdf
Here's my complete (5000+ words ๐คฏ) guide to Flutter Pagination with Riverpod, covering:
๐ infinite scrolling
โณ loading and error states
๐ refreshing data
๐ search UI with pagination
โจ caching & debouncing
โ edge cases & common questions
https://t.co/O0KW4L3h1b
Creating A GRPC Endpoint With Rust
In this tutorial, I will show you how to use Rust and Proto to create a simple "hello world" endpoint using gRPC.
#DEVCommunity#RustLang
https://t.co/PAKpzzNIst
What is API Observability?
There are 4 pillars of API observability:
- Metrics
- Events
- Logs
- Traces
Metrics measure values that determine API health. A few interesting metrics are throughput, latency, CPU usage, and memory usage.
Events capture significant changes in the system. They also include contextual information about what happened.
Logs capture important activity in the application and record the system actions.
Traces represent a record of a request's path through a distributed system.
To make your API observable, you must instrument it with event listeners, agents, or libraries, which can collect metrics, events, logs, and traces.
If you want to learn more about API observability and how Postman can help, check out this article: https://t.co/NZsrpk6Izk
You can use telemetry data to create alerts to notify your team about potential issues.
Another use case is visualization. Some services can ingest telemetry data and present them in a dashboard.
API observability plays a crucial role in helping your team monitor APIs. Telemetry can track performance, troubleshoot issues, and identify optimization opportunities.
How are you implementing API Observability in .NET?
P.S. If you got value from this post and want to improve your software architecture skills, subscribe to The .NET Weekly - my newsletter with 36,000+ engineers.
Subscribe here โ https://t.co/zeSWQFMIk8
7 Nonfiction Books That Will Help You Establish A Reading Habit.
1. Do It Today.
2. Atomic Habits.
3. The Daily Stoic.
4. The Kaizen Way.
5. Rise of The Reader.
6. The Almanack of Naval Ravikant.
7. 1000+ Little Things Happy Successful People Do Differently.
๐๐ฒ๐ฎ๐ฟ๐ป ๐ณ๐๐ป๐ฑ๐ฎ๐บ๐ฒ๐ป๐๐ฎ๐น๐ ๐ป๐ผ๐ ๐ณ๐ฟ๐ฎ๐บ๐ฒ๐๐ผ๐ฟ๐ธ๐
We, as developers, like to learn new stuff and try it ASAP. That stuff is mostly some new frameworks and tools (such as React, Angular, Spring, Web Forms, ...). Yet, those frameworks usually have ๐ฎ ๐๐ต๐ผ๐ฟ๐ ๐น๐ถ๐ณ๐ฒ, ๐ฎ ๐๐ผ ๐ฑ ๐๐ฒ๐ฎ๐ฟ๐ ๐ฎ๐ ๐๐ต๐ฒ๐ถ๐ฟ ๐ฏ๐ฒ๐๐. Instead of learning frameworks, which are needed to some extent, we should focus more on learning fundamentals.
๐๐ฒ๐ฎ๐ฟ๐ป๐ถ๐ป๐ด ๐๐ต๐ฒ ๐ณ๐๐ป๐ฑ๐ฎ๐บ๐ฒ๐ป๐๐ฎ๐น๐ ๐ผ๐ณ ๐๐ผ๐ณ๐๐๐ฎ๐ฟ๐ฒ ๐ฑ๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐บ๐ฒ๐ป๐ allows a developer to understand the underlying principles and concepts common across different frameworks and programming languages. This understanding allows for more flexibility and adaptability when working with new technologies or when faced with problems that may not be easily solved by a specific framework.
Additionally, a strong understanding of the fundamentals can lead to ๐บ๐ผ๐ฟ๐ฒ ๐ฒ๐ณ๐ณ๐ถ๐ฐ๐ถ๐ฒ๐ป๐ ๐ฎ๐ป๐ฑ ๐ฒ๐ณ๐ณ๐ฒ๐ฐ๐๐ถ๐๐ฒ ๐๐๐ฒ ๐ผ๐ณ ๐ณ๐ฟ๐ฎ๐บ๐ฒ๐๐ผ๐ฟ๐ธ๐, as the developer can better understand how to customize and extend them to meet specific needs.
Take an example of a web application that allows users to upload and share images, e.g., Ruby on Rails, and its functionalities for image processing. If the number of users increases, we could struggle with performance issues if we know only the framework well. Yet, if we understand the fundamentals of web development, we could try to identify bottlenecks and try different solutions, such as using CDN-s, optimizing image sizes, using different storage solutions, etc.
So, which fundamentals to learn:
๐น ๐๐น๐ด๐ผ๐ฟ๐ถ๐๐ต๐บ๐
๐น ๐๐ฎ๐๐ฎ ๐๐ผ๐๐ฟ๐ฐ๐ฒ๐
๐น ๐๐น๐ฒ๐ฎ๐ป ๐ฐ๐ผ๐ฑ๐ฒ
๐น ๐๐ฒ๐๐ถ๐ด๐ป ๐ฝ๐ฎ๐๐๐ฒ๐ฟ๐ป๐
๐น ๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐๐ผ๐บ๐ฝ๐๐๐ถ๐ป๐ด ๐ฃ๐ฎ๐๐๐ฒ๐ฟ๐ป๐
๐น ๐ง๐ฒ๐๐๐ถ๐ป๐ด
๐น ๐ฆ๐๐๐๐ฒ๐บ ๐๐ฒ๐๐ถ๐ด๐ป
Try to learn those fundamentals, buy and read these books:
๐ธ ๐๐น๐ฒ๐ฎ๐ป ๐๐ผ๐ฑ๐ฒ
๐ธ ๐ง๐ต๐ฒ ๐ฃ๐ฟ๐ฎ๐ด๐บ๐ฎ๐๐ถ๐ฐ ๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ฒ๐ฟ
๐ธ ๐๐ผ๐ฑ๐ฒ ๐๐ผ๐บ๐ฝ๐น๐ฒ๐๐ฒ
๐ธ ๐๐ฒ๐๐ถ๐ด๐ป ๐ฃ๐ฎ๐๐๐ฒ๐ฟ๐ป๐: ๐๐น๐ฒ๐บ๐ฒ๐ป๐๐ ๐ผ๐ณ ๐ฅ๐ฒ๐๐๐ฎ๐ฏ๐น๐ฒ ๐ข๐ฏ๐ท๐ฒ๐ฐ๐-๐ข๐ฟ๐ถ๐ฒ๐ป๐๐ฒ๐ฑ ๐ฆ๐ผ๐ณ๐๐๐ฎ๐ฟ๐ฒ
๐ธ ๐๐ป๐๐ฟ๐ผ๐ฑ๐๐ฐ๐๐ถ๐ผ๐ป ๐๐ผ ๐๐น๐ด๐ผ๐ฟ๐ถ๐๐ต๐บ๐
#softwareengineering
getting started with Vue 3?
This chatbot is trained using @vuejs docs ๐คฏ
It can help you clear any doubts you might have in the process!
https://t.co/cijnPxW7L1