What you're doing is fine for a homelab, or learning. But barring any very specific reason other than just not liking Kafka, its bad. The second that pattern needs to be fanned out to support even 50+ producers/consumers, the overhead and complexity needed to manage already-solved problems becomes a very bad design choice.
Kafka already solves this problem and gives me message durability, near infinite scale out, sharding, delivery guarantees, etc out of the box. I do not care to develop, reshard databases or production-alize this myself.
Some people don't and won't need 50+ producers/consumers for a long while, if ever. Rewriting the code at that point may be less costly than operating Kafka in the interim. Kafka is also has a higher potential for failure than sqlite.
Ofc, and not everybody needs or cares for all the features Kafka has. Then use another known and tested messaging system. Use NATS or ZMQ. Or any cloud native pubsub system
My main point is, I have zero interest in creating novel solutions to a solved problem. It just artificially increases the complexity of my work and the learning curve for contributors.
Have a table level seqno as monotonically increasing number stamped for every mutation. When a subscriber connects it asks for rows > Subscriber's seqno-last-handled.
True but the webdev idiom is injecting things such as mathjax from a cdn. I guess one can pre-render the page and save that, but that's kind of like a PDF already
To add, (in UK atleast), the parking space in some spots could be really small [1]. I have seen bulky cars parked leaving no room for neighboring slots.
The ability to ask "stupid" questions without feeling embarrassed is a superpower IMO.
I had the sweetest manager once. Someone stared talking about iphone and she [1] casually asked "what is iphone?" (this is after 6-7 months after iPhone was launched). Everyone's jaw dropped ... what? In which world u live in? ... to which she said with a wide smile and not an ounce of embarrassment .. "what? I don't know what iphone is?"
But she was otherwise so good in every other aspect ...
[1] She is/was mother of 4 kids and that left her very little time for anything else.
Once I got over the embarrassment hurdle of asking “dumb” questions, I grew a lot in my early career. Then people saw me as highly engaged, and my questions and understanding got better over time.
In particular, I encourage all the new joiners on my team to play the “newbie” card to allow them to ask as many questions as they want.
“Hey, new guy here… what is X?”
I even tell them to set a goal of one question per day if it helps.
I think it’s so important not to be passive because you absorb / understand less that way.
After 2 months working at a new department, i awkwardly asked my boss what the department acronym stood for. He stared at me confused, and couldn't figure it out; hes worked there for 30 years.
Technology isn't intuitive and there ares loads of things to remember. Sometimes the dumb question is needed by more than the person that asked.
There is a fundamental trade off between (1) Memory Safety (2) Zero cost abstraction/Performance (3) Ease of use
Rust attempts to solve this trifecta and that is where the complexity arises. If the problem at hand does not need async, then Rust has done commendable progress in dealing with the above trade-offs.
Async is in Rust can be hard because the problem it is trying to solve is hard.
All the above may be fine but when it comes to choosing the language in practice we need to think of trade-offs and guarantees that are suitable for problem at hand.
There is a reason why C++ reigns supreme in HFT and Gaming as memory safety is not super critical.
This has been an old problem with Legion laptops. All this will be available free of cost to everyone! Mad respect for people who are pledging their own money and the person who fixed it.
Also, Lenovo Legion Pro 7* are not cheap (not that this would have been justified for cheap laptops).
Shame on Lenovo/<big company> who should have fixed this years ago.
Please no. It would be impossible to decide the cutoff for who deserves it. Loud communities would bring drama when their favourite person doesn't get pinned. A black strip might be fine, though.
I was surprised how far sqlite goes with some sharding on modern SSDs for those in-between scale services/saas