Preferences

I'm assuming you're mainly focusing on software product architecture, There are a few trends which are currently widely adopted. one of them is the microservices architecture this link explains some of the widely used architectures and gives a few examples along with use cases (https://techbeacon.com/app-dev-testing/top-5-software-archit...) each of the mentioned architecture is vast enough to warrant a few books on each of the architecture. So I would recommend reading into what you might want master, as mastering all of it would require fair amount of time and effort. The principles mentioned can be applied to database design methodologies as well.

If you have to break it down in terms of raw basics, what approach you choose largely depends on what you want to achieve. Performance or security. wanting both requires large amount of human as well as computing resources. As a general example, consider node or apache, node gives you a performance improvement in terms of raw latency and concurrency by a factor of ~20-100 (based on a few simple tests i've done using apache bench) in most scenarios compared to apache but in terms of reliability, if your code for any reason doesn't handle exceptions, it takes down your entire server/service. With apache, that wont happen, your perfomance degrades, some users might get affected but the service as a whole would still be operational. This is just an example, most of the technology out there is about making the choice on what you're okay with comprimising with the available resources (human and computational) that you have. This is just my view on it.


One more question , I am more concern about database design also, e.g. Table designs and its relationship , data model like scalable DB Design like , when we grow our features/Buisness DB should not be big barrier
http://www.odbms.org/wp-content/uploads/2013/11/PP2.pdf This could be a good starting point.

followed by further reading on this https://www.ciosummits.com/media/solution_spotlight/TDWI_Che... And possibly sql query optimizations. In most cases, efficient indexes should be enough to maintain reasonable performance.

But in cases where scale gets exponentially bigger at a rate at which you cannot possibly keep adding computing resources, breaking the best followed practices is the only way to get more performance without adding hardware resources at the same rate as increased scale, this at times includes but is not limited to, getting rid of foreign keys, coupling your app logic along with your db to to breakdown larger tables periodically/automatically/ runtime creation. This though requires skills across the entire stack and has it's fair share of downfalls and is never a recommended practice unless you know what you're doing and are okay with compromising on some of ACID properties. since maintaining something like this becomes unsustainable without contingencies. Take all of this with some grain of salt as the topic is highly subjective.

Thanks 9notrop,

Yes i will check that book and it will be helpful, for Node vs Apache, yes , as Apache is multi threaded and Node is single threaded ,if some fails single thread will die and it affect whole server

This item has no comments currently.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal