ignatandrei / patterns

https://ignatandrei.github.io/patterns/
MIT License
0 stars 0 forks source link

https://substack.com/@systemdesignone/note/c-55756922 #5

Open ignatandrei opened 5 months ago

ignatandrei commented 5 months ago

15) Scalability:

Ability to handle growth without degrading system performance.

It involves horizontal and vertical scaling.

14) Availability:

The system remains operational even after a failure.

It involves redundancy, fault tolerance, load balancing, and failover.

13) Reliability:

The system gives predictable output for a specific period.

It involves reduced downtime, handling errors, and redundancy.

12) Performance:

The system meets response time and throughput needs.

It involves using efficient algorithms, data structures, and caching mechanisms.

11) Consistency:

Every server in a distributed system has the same data view at a time.

It involves choosing between strong and eventual consistency.

10) Partitioning:

Dividing data into smaller parts to distribute traffic across many servers.

It involves partitioning algorithms and partition keys.

9) Data modeling:

Schemas and data structures to efficiently store and represent data.

It involves data normalization and different database types.

8) Caching:

Storing data that is often accessed to reduce latency and improve performance.

It involves cache invalidation and cache eviction techniques.

7) Message queues and Event streaming:

Asynchronous communication to decouple components and handle traffic spikes.

6) Security:

It involves authentication, authorization, encryption, and data privacy.

5) Monitoring and Logging:

Tracking system health and optimizing performance.

It involves metrics collection, log aggregation, and finding issues.

4) Design patterns:

It involves MVC, microservices, serverless, and monolith.

3) Load balancing:

Distributing traffic across many servers for scalability and reliability.

It involves load-balancing algorithms and types.

2) Concurrency:

Using threads, and processes for performance in handling concurrent requests.

1) Testing:

It involves unit testing, integration testing, and performance testing.