Be 1. Clear 2. Flexible 3. Knowledge
www.site.com/chat-messeging/getAdmins/v1 get m with gid=123 json in the request you can replace the get in the route because the HTTP request is get
For big response: 1. Pagination gives the responsibility to the client of repetitive calls 2. Fragmentation
Blob: Binary large object stored in databaese have 3 avantages over files
You must shard your database according to the query. Some frameworks do it automamatically (Casandra, Dynamo)
Blob
Files (No select *)
Cache:
Cache policies:
Redis is a global cache, slower but more accurate than in memory cache. Easyer to scale
Write though cache, first write cache then db
Write-back cache, first db then write cache
Master write and propagte, read inconsitent only on slave. Like facbook where more read tha write
Multiple node agree for the final state. Odd number of nodes is better for votes
Advantages are like json Vs comma separated values. Dynamic Vs Static. Array Vs List
SQL is said to be a relational Db.
Pb: Request / Response has a stron coupling, client machine must wait a may timeout: failure latency.
Publisher / Subscriber model: there is a message broker between asker and responder that take the responsability to wait
Warning, no atomicity, poor consistency
Twitter is the perfect example: one publisher, many subscribers
The calling service is publishing events when he feels someone may need it. In a Request / Response services, he ask directly someone to do a job.
Avantages 1. Availability (! This always means inconsistency) 2. Easy Roll Back (Undo possible) 3. Replacement (due to easy rool back) 4. Transaction guarantee (can be send max or min 1 email) 5. Store intent
Drawbacks 1. Inconsistency 2. Gateway must store all responses 3. Lesser control from master -> dificult to trace data flow for devs
Mobile is the way in for new users.
Feature anti-pattern: 1. if a feature, you are thinking about must appear in preference (configurable): red alert. It is pointing the job to the user. 2. Disagree on the default value
Icons, and UX matters a lot when competing in the noise of conpetency (app, themes: food, music)
Idea offline doc with zeal framework or webclipper