Beware the performance cost of async_hooks (Node 8)

I was excited about async_hooks having finally landed in Node.js 8, as it would enable me to share important troubleshooting information with all code involved in handling a particular request. However it turned out to have terrible impact of our CPU usage (YMMV): This was quite extreme and is likely related to the way howContinue reading “Beware the performance cost of async_hooks (Node 8)”

A Costly Failure to Design for Performance and Robustness

I have learned that it is costly to not prioritise expressing one’s design concerns and ideas early. As a result, we have a shopping cart that is noticeably slow, goes down whenever the backend experiences problems, and is a potential performance bottleneck. Let’s have a look at the problem, the actual and my ideal designs,Continue reading “A Costly Failure to Design for Performance and Robustness”

Troubleshooting And Improving HTTPS/TLS Connection Performance

Our team has struggled with slow calls to the back-end, resulting in unpleasant, user-perceivable delays. While a direct (HTTP) call to a backend REST service took around 50ms, our median time was around 300ms (while using HTTPS and a proxy between us and the service). We have just decreased that time to median of 80msContinue reading “Troubleshooting And Improving HTTPS/TLS Connection Performance”

Book Review & Digest: Release It! Design and Deploy Production-Ready Software

By Michael T. Nygard, 2007, ISBN: 978-0-9787-3921-8 My digest and review of the book. Review Of the books I have read, Release It! is the one I would require all “senior” developers to read (together with something like Architecting Enterprise Solutions: Patterns for High-Capability Internet-based Systems). Especially the first part on stability with its patternsContinue reading “Book Review & Digest: Release It! Design and Deploy Production-Ready Software”

Continuous Delivery Digest: Ch.9 Testing Non-Functional Requirements

(Cross-posted from Digest of chapter 9 of the Continuous Delivery bible by Humble and Farley. See also the digest of ch 8: Automated Acceptance Testing. (“cross-functional” might be better as they too are crucial for functionality) f.ex. security, usability, maintainability, auditability, configurability but especially capacity, throughput, performance performance = time to process 1 transactionContinue reading “Continuous Delivery Digest: Ch.9 Testing Non-Functional Requirements”

How to create and run Gatling 2.0 tests

Getting up and running with Gatling perf. tests as I would like so I record this for my future reference. 0. Create a project: (The trailing “:” in the filter is important.) 1. Import to IntelliJ In IntelliJ choose to import an object, instead of “from sources” select “from external model” and then Maven. YouContinue reading “How to create and run Gatling 2.0 tests”

Most interesting links of February ’14

Recommended Readings Development Falsehoods Programmers Believe About Names – summary: there are no rules that apply to names, do not assume anything (my favourite: 12 + 13) Nathan Marz: Principles of Software Engineering, Part 1 – Nathan has worked with Big Data at Twitter and other places and really knows the perils or large, distributed, real-time systems andContinue reading “Most interesting links of February ’14”

Most interesting links of September ’13

Recommended Readings Stuff The Internet Says On Scalability For September 13, 2013 – a collection of interesting performance related articles with summaries (via @_dagi) Can you copy a culture? The NUMMI story (audio/transcript) – how the GM factory with the worst workforce has been turned around via a good application of Toyota Production System –Continue reading “Most interesting links of September ’13”

Most interesting links of July ’13

This month focuses on languages and approaches (reactive programming, F#, Erlang, FP talks etc.), agile (need for speed, recommended books), Clojure/Linux/cloud tools and libs. Recommended Readings Development, agile The Need For Speed – the top 10 reasons for fast development flow (with time to market being one of the less important) – more learning, focusContinue reading “Most interesting links of July ’13”