The span is simply the way the data is modeled. The way the tracing works is it calls a component called a Span Processor on both span start and end. It would be possible to implement a Span Processor that sends span_start and span_end events to your backend without waiting for the span to start.
In terms of crashing and taking a long time to complete, these are problems that are very difficult to solve on the backend as well. Simply having the start event without the end event is not enough info to say for sure that there will _never_ be an end event. For low data volumes and simple use-cases this may not seem like a big deal, but it gets complex extremely quickly.
I'm unclear about the part about expensive queries to the data store. What cron/celery/quartz job would require a check to the data store for a check that wouldn't need to be done with posthook? It seems like if work depends on a decision made with data from my data store, that doesn't change based on what I use as a timer for the task. I'm not sure that I see a clear value-add here.
What is truly astounding about this is the patience to even attempt to explain free theorems to a 6 year old. Most parents would likely answer "math" and that would be the end of it. I don't (yet) have kids, but when I do I hope I have the wherewithal to recognize and take advantage of moments like these.
>”I don’t think the average person likely reads that whole document.”
This is my favorite quote in the whole article. Sums up the pompousness of the company quite nicely I think. This is one of the largest companies in the world. The quote could easily have been “we go to great lengths to make sure that’s the case,” or “that’s the point, grandpa.” At least it wouldn’t have come across as dishonest and cowardly that way.
I assume this refers to the overhead of the JVM itself. How high that is and how much that matters has been subject to debate, but I think it is objectively higher overhead cost than the Go runtime.
I think the author is saying "more complex" relative to higher level languages like Go. They mean to put Rust in the same category as C++. It could be rephrased as "prepared to accept languages like C++, D, and Rust with more complex syntax"
I think you misunderstood what I meant by non-responsive. 10ms latency from click to action is nowhere near as noticeable as 10ms latency when dragging, because the mouse visibly lags behind.
Creating a false sense of urgency is a cornerstone of modern marketing. The only difference between this and any other marketing campaign is that you just happened to catch them this time.
This is just like when you go to an electronics store and they put the super expensive tv (almost) nobody buys right next to the still very expensive but comparably more modest model. You are more likely to buy that second tv even if costs more than you initially budgeted because your brain tells you that this is the cheaper model with _almost_ the same features as the flagship tv.
For another example, many ecommerce sites will list the number available in stock if it is low, and sometimes will just say "few available" without specifying a number. This creates the same (sometimes false) sense of urgency.
Yes there is. Humans are normally not very responsive to the time between when an action is started and when it is carried out on the screen, but this changes for actions like drawing and dragging. This is the reason for the new Pro Motion behavior on the recently released iPad Pro models. For more information, this video [1] is a good place to start.