[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-observability-for-small-teams-en":3,"blog-adjacent-observability-for-small-teams-en":29,"blog-related-observability-for-small-teams-en":63},{"id":4,"slug":5,"title":6,"excerpt":7,"content":8,"cover":9,"tone":10,"author":11,"publishedAt":12,"updatedAt":12,"readingMinutes":13,"featured":14,"tags":15,"category":19,"seoSettings":28},45,"observability-for-small-teams","Observability: Logs, Metrics and Traces","When something breaks, answering 'what happened' is worth more than 'the system is slow'.","\u003Cp>Many projects log only errors, as scattered strings. During an incident the team greps files on a server and rebuilds a timeline, losing hours. Observability is not expensive; structure is what matters.\u003C\u002Fp>\n\u003Ch2>What each signal is for\u003C\u002Fh2>\n\u003Cp>Logs answer what happened: request parameters, stack traces, key business steps. Structured logs are far easier to query than plain text.\u003C\u002Fp>\n\u003Cp>Metrics answer whether something is abnormal: latency, error rate, queue backlog. Good for alerting, poor for detail.\u003C\u002Fp>\n\u003Cp>Traces answer where time went across services, essential once call chains grow.\u003C\u002Fp>\n\u003Ch2>A minimal approach\u003C\u002Fh2>\n\u003Cp>Give every request a shared request id, so logs, metrics and traces can be joined.\u003C\u002Fp>\n\u003Cp>Emit explicit events for key business actions such as order creation or approval, to reconcile later.\u003C\u002Fp>\n\u003Cp>Keep a thirty-day query window and archive older data rather than deleting it.\u003C\u002Fp>\n\u003Cp>Observability does not come from buying a platform. It accumulates from the first structured log line.\u003C\u002Fp>","","teal","佳益方圆团队","2026-04-20T16:15:00+08:00",1,false,[16,17,18],"Observability","Logs","Operations",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},0,"engineering","Engineering","Hands-on engineering practices in architecture, performance optimization, AI integration and cross-platform delivery from our R and D team.","cpu","blue","article",60,{},{"previous":30,"next":46},{"id":31,"slug":32,"title":33,"excerpt":34,"content":9,"cover":9,"tone":25,"author":11,"publishedAt":35,"updatedAt":35,"readingMinutes":13,"featured":14,"tags":36,"category":39},24,"managing-founder-anxiety","Managing Founder Anxiety","Anxiety does not disappear, but it can be scheduled. Turning it into concrete questions makes it workable.","2026-04-22T15:02:00+08:00",[37,38,18],"Startup","Mindset",{"id":40,"parentId":20,"slug":41,"name":42,"description":43,"icon":44,"cover":9,"tone":25,"kind":26,"sortOrder":45,"count":20},6,"founder-notes","Founder Notes","Reflections from the founding team on business, management and product, documenting the growth of a software company.","pen-tool",10,{"id":47,"slug":48,"title":49,"excerpt":50,"content":9,"cover":9,"tone":25,"author":11,"publishedAt":51,"updatedAt":51,"readingMinutes":13,"featured":14,"tags":52,"category":56},65,"mobile-context-first","Mobile Context Decides the Interaction","Moving admin features onto phones does not start with shrinking the screen, but with understanding where users open it.","2026-04-18T16:15:00+08:00",[53,54,55],"Mobile","Context","Product Design",{"id":57,"parentId":20,"slug":58,"name":59,"description":60,"icon":61,"cover":9,"tone":25,"kind":26,"sortOrder":62,"count":20},2,"product-thinking","Product Thinking","Requirement analysis, user experience and product design methods, plus the thinking from business problems to product solutions.","lightbulb",50,[64,75,86],{"id":65,"slug":66,"title":67,"excerpt":68,"content":9,"cover":9,"tone":69,"author":11,"publishedAt":70,"updatedAt":70,"readingMinutes":13,"featured":14,"tags":71,"category":74},30,"integration-api-pitfalls","Five Traps in Enterprise System Integration","However complete the API documentation is, integration usually stalls on field semantics, timeouts and repeated pushes.","cyan","2026-10-17T09:00:00+08:00",[72,73,22],"Integration","APIs",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":13,"slug":76,"title":77,"excerpt":78,"content":9,"cover":9,"tone":69,"author":11,"publishedAt":79,"updatedAt":80,"readingMinutes":57,"featured":81,"tags":82,"category":85},"why-enterprise-systems-age","Why Enterprise Systems Start to Age After Three Years","A system can pass acceptance with every feature checked, then feel awkward three years later. The problem is rarely the code — it is the changes that were never considered at delivery.","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",true,[83,84],"System Evolution","Architecture",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20},{"id":87,"slug":88,"title":89,"excerpt":90,"content":9,"cover":9,"tone":25,"author":11,"publishedAt":91,"updatedAt":91,"readingMinutes":13,"featured":14,"tags":92,"category":96},31,"idempotent-design-basics","Idempotency: Duplicate Submissions Are Not Just Double Clicks","Retries, redelivery and impatient users all send the same request more than once. Idempotency belongs in the API design.","2026-10-05T10:13:00+08:00",[93,94,95],"API Design","Idempotency","Reliability",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":25,"kind":26,"sortOrder":27,"count":20}]