Hello again.
Links of the week
eBPF, sidecars, and the future of the service mesh
Unfortunately, we hit bottom pretty quickly: eBPF’s limitations mean that the full scope of service mesh features such routing HTTP/2 traffic based on headers, initiating and terminating mutual TLS, and so on, are very, very far outside the realm of technical feasibility with an eBPF-only approach.
And even if they were feasible, it still wouldn’t make sense to implement them in eBPF! Writing eBPF is hard; debugging it is extremely hard; and these operations are complicated enough already, without having to implement them in a limited programming model that requires us to jump through hoops to even accumulate data across packets.
So, for reasons of both technical limitation and software engineering practices, the idea of a “pure” eBPF service mesh is a non-starter.
Closures in Rust, like many other languages, are a useful tool to make your APIs more fluent and the code more concise and expressive. But due to Rust's unique safety guarantees they are also a little harder to master. Hopefully this article gave you a thorough understanding in them.
⏯ How The BMW M3 Conquered the WORLD
Each generation of BMW M3 is unique, fast and fantastic. All borne from that initial idea. Make a race car for the road. The BMW M3 launched a middling German car brand from stuffy luxury brand, to where you go when you blood burns with 91 octane. When you need the world’s finest cars, that hold no punches, and leave no witnesses.
Do you actually need a vector database?
People typically use a vector database so that they can quickly find the most similar embeddings to a given embedding. Maybe you’ve embedded a bunch of images and want to find other dogs that look similar to a given dog. Or, you embed the text of a search query and want to find the top 10 documents that are most similar to the query. Vector databases let you do this very quickly.
Best Practices for Authorization in Microservices
When speaking with engineering teams, my guidance is always, "build authorization around the application, not the other way around." For simple systems where maintaining lots of extra infrastructure is expensive, it can be best to keep the data where it lies, and string together your services with purpose-built APIs. Certain applications can grow to massive scale with only basic user roles that can fit on a JWT — in that case, perhaps an authorization gateway is optimal. Some companies with a variety of products, authorization patterns, and user types might prefer to make the effort to centralize their data into a dedicated authorization service.
We’re Gonna Need a Bigger Moat
The GPT model series, OpenAI’s LLM, with its proprietary architecture and super-secret learned weights and biases, is ChatGPT’s moat. That, plus a bit of scaling help from Microsoft.
Everyone whined when OpenAI closed off GPT but refused to change their name to ClosedAI. That simple change would have made everyone happy. Well, that, and staying remote. His staff should tell him they’ll return to office when his head returns from his ass. All-remote does actually work.
Anyway. Where was I. Oh yeah. OpenAI clearly recognized how much money they could make if they had a lock on the LLM market with ChatGPT. So they basically gave everyone the finger and started keeping secret their architecture, their model hyperparameters, their training methodology, and pretty much most aspects of what made ChatGPT great.
GPT became a moat, for a while, which made ChatGPT really hard to compete with, and only a few companies managed it.
Redpanda’s official Jepsen report: What we fixed, and what we shouldn’t
Redpanda is a complex distributed system. Even at its core, it consists of several components: consensus, idempotency, and transactions.
Each component provides an important function and stays at the hot path of almost every request. Consensus is responsible for replication and durability, idempotency provides session guarantees and deduplication, while transactions are responsible for atomicity.
Our partnership with Jepsen helped us to check that the consensus layer is rock solid, to identify and fix problems with transactions and idempotency, to find the gaps in documentation, to gain confidence in the in-house chaos testing, and to look at the transactional model from a new perspective, inspiring us for upcoming blog posts.
Book of the Week
Founding Sales: The Early Stage Go-to-Market Handbook
Do you have any more links our community should read? Feel free to post them on the comments.
Have a nice week. 😉
Have you read last week's post? Check the archive.