TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Patterns of Distributed Systems (2022)

235 pointsby eclectic29almost 2 years ago

11 comments

withinboredomalmost 2 years ago
&gt; The main reason we can not use system clocks is that system clocks across servers are not guaranteed to be synchronized.<p>Sentences like this will make me never regret to moving my infrastructure to bare-metal. My clocks are synchronized down to several nano-seconds, with leap-second skew and all kinds of shiny things. It literally took a day to set up and a blessing from an ISP in the same datacenter to use their clock sources (GPS + PTP). All the other servers are synchronized to that one via Chrony.
评论 #36501243 未加载
评论 #36499654 未加载
评论 #36501295 未加载
评论 #36507048 未加载
评论 #36500030 未加载
评论 #36499993 未加载
评论 #36502400 未加载
评论 #36499647 未加载
Solvencyalmost 2 years ago
Can someone explain why, in an interview context, someone with the technical ability to understand and assess and write and communicate a deep set of domain-specific knowledge like this....might still be asked to do some in-person leetcode tests? How does on the fly recursive algo regurgitation sometimes mean more than being able to demonstrate such depth of knowledge?
评论 #36502151 未加载
评论 #36503542 未加载
评论 #36503714 未加载
评论 #36502635 未加载
评论 #36501997 未加载
评论 #36502135 未加载
westurneralmost 2 years ago
Distributed computing &gt; Theoretical foundations: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Distributed_computing#Theoretical_foundations" rel="nofollow noreferrer">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Distributed_computing#Theoreti...</a><p>Distributed algorithm &gt; Standard problems: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Distributed_algorithm#Standard_problems" rel="nofollow noreferrer">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Distributed_algorithm#Standard...</a><p>Notes from &quot;Ask HN: Learning about distributed systems?&quot; <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=23932271">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=23932271</a> ; CAP(?), BSP, Paxos, Raft, Byzantine fault, Consensus (computer science), Category: Distributed computing<p>&quot;Ask HN: Do you use TLA+?&quot; (2022) <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=30194993">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=30194993</a> :<p>&gt; <i>&quot;Concurrency: The Works of Leslie Lamport&quot; ( <a href="https:&#x2F;&#x2F;g.co&#x2F;kgs&#x2F;nx1BaB" rel="nofollow noreferrer">https:&#x2F;&#x2F;g.co&#x2F;kgs&#x2F;nx1BaB</a></i> )<p>Lamport timestamp &gt; Lamport&#x27;s logical clock in distributed systems: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Lamport_timestamp#Lamport&#x27;s_logical_clock_in_distributed_systems" rel="nofollow noreferrer">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Lamport_timestamp#Lamport&#x27;s_lo...</a> :<p>&gt; <i>In a distributed system, it is not possible in practice to synchronize time across entities (typically thought of as processes) within the system; hence, the entities can use the concept of a logical clock based on the events through which they communicate.</i><p>Vector clock: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Vector_clock" rel="nofollow noreferrer">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Vector_clock</a><p>&gt; <i><a href="https:&#x2F;&#x2F;westurner.github.io&#x2F;hnlog&#x2F;#comment-27442819" rel="nofollow noreferrer">https:&#x2F;&#x2F;westurner.github.io&#x2F;hnlog&#x2F;#comment-27442819</a> :</i><p>&gt;&gt; <i>Can there still be side channel attacks in formally verified systems? Can e.g. TLA+ help with that at all?</i>
评论 #36529707 未加载
esafakalmost 2 years ago
The book is available for pre-order, and shipping in September: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;0138221987&#x2F;" rel="nofollow noreferrer">https:&#x2F;&#x2F;www.amazon.com&#x2F;dp&#x2F;0138221987&#x2F;</a>
评论 #36512231 未加载
sidcoolalmost 2 years ago
I know the author of the blog and the book personally. And the author has built small storage engines himself and grokked code bases of Cassandra and other DBs to understand the patterns in code and not just as theoretical concepts. The blogs has code excerpts as well. Highly recommended read for the hands on folks.
supriyo-biswasalmost 2 years ago
Commenters here are missing the point — the intent is to build otherwise isolated systems with properties that are very difficult to control, such as varying amounts of clock skew, arbitrary process pauses due to GC cycles or CPU consumption and build a system on top that allows for the storage of mutable state. An example would be a cluster of etcd or dqlite instances (which Kubernetes in multi-master setups also use BTW), or at a larger scale, something like DynamoDB.<p>It’s one of the more easily approached resources on the design of distributed systems, and a good read.
nijavealmost 2 years ago
<a href="https:&#x2F;&#x2F;microservices.io&#x2F;patterns&#x2F;index.html" rel="nofollow noreferrer">https:&#x2F;&#x2F;microservices.io&#x2F;patterns&#x2F;index.html</a> has some patterns as well that aren&#x27;t necessarily specific to a microservice architecture.
timfalmost 2 years ago
&gt; The main reason we can not use system clocks is that system clocks across servers are not guaranteed to be synchronized.<p>Data center&#x2F;cloud system clocks can be tightly synchronized now in practice. Still never perfect and race conditions abound.<p>But that doesn&#x27;t mean you can&#x27;t rely on a clock to determine ordering, Google popularized a different approach with TrueTime&#x2F;Spanner: <a href="https:&#x2F;&#x2F;cloud.google.com&#x2F;spanner&#x2F;docs&#x2F;true-time-external-consistency" rel="nofollow noreferrer">https:&#x2F;&#x2F;cloud.google.com&#x2F;spanner&#x2F;docs&#x2F;true-time-external-con...</a>
评论 #36501356 未加载
sidcoolalmost 2 years ago
There&#x27;s a book that compiles all these patterns:<p><a href="https:&#x2F;&#x2F;learning.oreilly.com&#x2F;library&#x2F;view&#x2F;patterns-of-distributed&#x2F;9780138222246&#x2F;cover.html" rel="nofollow noreferrer">https:&#x2F;&#x2F;learning.oreilly.com&#x2F;library&#x2F;view&#x2F;patterns-of-distri...</a>
dangalmost 2 years ago
Related:<p><i>Patterns of Distributed Systems (2020)</i> - <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=26089683">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=26089683</a> - Feb 2021 (58 comments)
dikeialmost 2 years ago
This looks pretty good, similar to Designing Data-intensive applications, but with more focus on Distributed Systems.