You assume you will have time to work on it. We are a business of 35 employees, 300k SAAS customers in low cost B2C, we are busy building product and fixing bugs there, we basically have zero minutes to spend on extending the billing system or implementing custom deals. Rolling out a price change can take anywhere from 3 days to 2 months (dealing with early efforts on custom deals is a nightmare). If it cant easily be automated, we can't do it. It takes too much time. If we had based our billing on a product like those mentioned here, we likely could have had way better chance of doing custom deals and rolling out price changes per customer segments.
The Apache Foundation also takes on projects that are literally abandoned. It acts as an umbrella that takes over hosting a project for commercial actors that can no longer develop it, but want to at least give existing users a open source (Apache License) version of the software to continue with/depend on.
I have the opposite experience. Lots of good stuff is hosted by Apache Foundation, such as Kafka, Maven, Cassandra, Camel, the Tika project, Superset, Solr, but I will admit they had more relevance 10 years ago. And I dont think there are many organizations that keep open source projects alive longer than the Apache projects.
Same, I'd rather spend 3 hours working with the potential team than spend 12 hours practicing leetcode. If you want to see my code, I have plenty of public domain projects freely available.
Using the INSERT/UPDATES is kind of limiting for your events. Usually you will want richer event (higher level information) than the raw structure of a single table. Use this feature very sparingly. Keep in mind that LISTEN should also ONLY be used to reduce the active polling, it is not a failsafe delivery system, and you will not get notified of things that happened while you were gone.
Yes/no/maybe? context is one of the few ways to get contextual logging and tracing to work in a almost general way in Go. But I have also used it to pass the authenticated user to the handlerfunc. I dont dig it, but it works and avoids the need to keep a static map of request pointers somewhere to figure out which user was in this request...
Tbh this is not the worst idea I've seen. I hope you can make it, because I would have a hard time justifying such an experimental platform and idea as a foundation for a company.
This was a couple of years ago now, but for example, some very minor amount of objects had not been replicated at all. This happened during heavy concurrent write traffic, and a couple of these race condition-ish bugs have been fixed over the years.
Have used SeaweedFS to store billions of thumbnails. The tooling is a bit clunky, but it mostly works. The performance is very good for small-ish objects (memory usage + latency), and latency remains consistently good into 99.9 percentiles. We had some issues with data loss and downtime, but that was mostly our own fault.
I have been working mostly with Kafka for five years, and I found SQS to be a little weird to work with. How do you keep an overview of all services that consume a queue? What if you want multiple services to read the same data in the same order? Granted I am very new to AWS.
Its not really related at all. Loom allows java thread to in certain cases block, but then yield to run a different thread's code. That principle is unrelated to File IO.
Very good summary. I think both Gitlab CI and Github Actions are very good, but I think gitlab ci is more practical because of how easy it is to build custom advanced pipelines vs the great re-use of github actions.
It's a very long story, but yeah, its about how the applications on your desktop can draw content inside their borders, and how those applications interact with things like keyboard/mouse/other applications drawn on the screen. One of the big things is that X11 was written for a time where everything was open with no access control. Any application can view any other application, or capture any keystroke. Wayland introduces a form for permissions control, which has been a huge ordeal to both pave the path for and to design and figure out how on earth that should work. It's great though that you can have some actual control on who can listen to keystrokes and not.
At least screen sharing has been solved. We are mainly waiting for apps that use sharing to implement the Wayland compatible to get access to screen recording.
Yes, our server had 120k queries/sec, but 80% of that traffic was driver heartbeats or connection verification. We halved it by disabling the connection verification query.
I have done some similar, simpler data wrangling with xsv (https://github.com/BurntSushi/xsv) and jq. It could process my 800M rows in a couple of minutes (plus the time to read it out from the database =)
They stayed true to a single product purpose, did not add frivolous features and experiments, and didn't deal with payments/billing, eventually being "rescued" by VC money? You seem to gloss over that AWS also helps them out a lot already here, by being the load balancer entry points and ordering VMs from a api.