Live data from Hacker News

Learn how to design large-scale systems

github.com

11–20 of 199 posts

Re: Learn how to design large-scale systems

#11
post #5

Earlier quoted context omitted.

from my understanding you get the ability to put the DAL into a "pause" mode where it queues all the api requests allowing you do to updates / upgrades to the database with no downtime. It also gives you a way of controlling what queries are used by the API servers preventing a developer from doing silly things and creating a production outage

It also makes changing your DB a lot easier since APIs using the DAL don't need to be updated since they're DB agnostic -- you "only" need to update the DAL API.

How often does one change the DB backing a live production application?

Re: Learn how to design large-scale systems

#12

I'd add a section on using TLA+ as a design tool. Diagrams and rules of thumb are useful but they don't catch errors or help you discover the correct architecture. See the Amazon paper [0] on their use of TLA+ in designing (and trouble-shooting) services. [0] https://lamport.azurewebsites.net/tla/formal-methods-amazon....

Why is an AWS paper on azure websites? :)

Re: Learn how to design large-scale systems

#13
Oh interesting, I have never seen Anki (https://apps.ankiweb.net/) being used for large blocks of source code.

Anki is an open source application (desktop + mobile) for spaced repetition learning (aka flashcards). It's a very popular tool among people who want to learn languages (and basically anything else you want to remember). There are many shared decks (https://ankiweb.net/shared/decks/). Creating and formatting cards is also possible and pretty easy.

If you are planning to learn a language or anything else give Anki a try. I used it for all of my language learning efforts. With this least my vocabulary is rocking solid.

Re: Learn how to design large-scale systems

#14
post #12

I'd add a section on using TLA+ as a design tool. Diagrams and rules of thumb are useful but they don't catch errors or help you discover the correct architecture. See the Amazon paper [0] on their use of TLA+ in designing (and trouble-shooting) services. [0] https://lamport.azurewebsites.net/tla/formal-methods-amazon....

Why is an AWS paper on azure websites? :)

Redundancy.

Real answer though it's a Microsoftian's (that's not a word) website https://lamport.azurewebsites.net/

Re: Learn how to design large-scale systems

#15

Note that HN, a top-1000 site in the US, runs on a single box via a single racket process. "The key to performance is elegance, not battalions of special cases."

Heh, elegance like "There is a story on the front page getting lots of attention, please log out so we can serve you from cache."

Admittedly, that’s very rare.

Re: Learn how to design large-scale systems

#16
post #5

Earlier quoted context omitted.

from my understanding you get the ability to put the DAL into a "pause" mode where it queues all the api requests allowing you do to updates / upgrades to the database with no downtime. It also gives you a way of controlling what queries are used by the API servers preventing a developer from doing silly things and creating a production outage

It also makes changing your DB a lot easier since APIs using the DAL don't need to be updated since they're DB agnostic -- you "only" need to update the DAL API.

Yeah, but this is more code architecture than system architecture.

Re: Learn how to design large-scale systems

#17

Earlier quoted context omitted.

Heh, elegance like "There is a story on the front page getting lots of attention, please log out so we can serve you from cache."

Admittedly, that’s very rare.

I know, just a good natured poke :) Plus you could probably take that comment at face value - making use of web caching is definitely an important tool when building a large scale system.

Re: Learn how to design large-scale systems

#18

I'd add a section on using TLA+ as a design tool. Diagrams and rules of thumb are useful but they don't catch errors or help you discover the correct architecture. See the Amazon paper [0] on their use of TLA+ in designing (and trouble-shooting) services. [0] https://lamport.azurewebsites.net/tla/formal-methods-amazon....

Could you please talk about your experiences with TLA+? The "tools of thinking" for designing and verifying systems really interest me.

Re: Learn how to design large-scale systems

#19
post #11

Earlier quoted context omitted.

It also makes changing your DB a lot easier since APIs using the DAL don't need to be updated since they're DB agnostic -- you "only" need to update the DAL API.

How often does one change the DB backing a live production application?

I also don't think it's a good idea. If you don't use the database specific functions out of fear you aren't able to switch anymore, you are probably wasting a lot of potential performance.

Re: Learn how to design large-scale systems

#20

Note that HN, a top-1000 site in the US, runs on a single box via a single racket process. "The key to performance is elegance, not battalions of special cases."

Heh, elegance like "There is a story on the front page getting lots of attention, please log out so we can serve you from cache."

When your queue is full, back pressure.
Post reply on HN