A Byte of Coding Issue 363

A Byte of Coding Issue 363

A Byte of Coding

Soup?

How’s it going party people? Seems like facebook was down most of yesterday. I saw this crazy stat: “Last year’s ad revenue (for Facebook’s sites) was $84.2bn. So, for every minute it’s down, they’re losing around $160,000. Or, $2,670 per second”. I think it was down at least 12 hours yesterday, which would be $115.2 million. Yeesh. Imagine you just had your first commit pushed to production; I know I’d be sweating.

I’ll be in Zurich, Switzerland in a week for 10 days. If you’re around and want to grab a coffee, beer, do a workout, some co-working, or whatever, let me know by replying to this email.

Anyway, here’s the issue.

Unblocked provides development teams helpful and accurate answers to questions about their codebase. It tailors answers by complementing source code with relevant discussions from GitHub, Slack, JIRA and more. See how teams can spend less time digging for context and more time building great software.

Published: 5 March 2024

Tags: architecture, system design, design patterns

Ian Cartwright, Rob Horn, and James Lewis explain how to implement Event Interception in context of replacing a legacy system piece by piece with new systems.

Some highlights:

  • With Event Interception, we identify existing integration points between legacy components and if possible take advantage of them as seams we can use to introduce new capabilities”

  • existing messaging infrastructure can be a massive boon when it comes to intercepting and rerouting events from the legacy system to the new system

  • precommit database triggers can be used as a final line of defense

Published: 22 February 2024

Tags: c++, design patterns, performance

In this first part of a two article series, Marco Arena explores the performance side of an actor-based system.

Some highlights:

  • performance of actor-based systems are generally characterized by throughput and latency;”

  • “often, throughput problems are firstly addressed by trying to distribute work (scaling), or by reducing the flow of messages to be processed;”

  • “latency is usually more difficult to optimize as it needs further work into the internals of the agents or the design of the system itself;”

Tags: sponsored

Unblocked provides development teams helpful and accurate answers to questions about their codebase. It tailors answers by complementing source code with relevant discussions from GitHub, Slack, JIRA and more. See how teams can spend less time digging for context and more time building great software.

Published: 4 March 2024

Tags: go, optimization, performance

Mengxin Liu dives into the theoretical and practical performance benefits of allocating the correct amount of memory space on slice initialization in go. There’s also a second article with more rigorous testing.

Some highlights:

  • correctly allocating slice memory can improve performance via not needing repeated allocations, no repeated data copying, no garbage collection for old slice, and no capacity waste resulting from dynamic allocation

  • basic tests show 3-4x faster performance with preallocation vs without

  • lint tools exists to catch potential places where preallocation could be used

Sponsored
Teb's LabSoftware news and education

Thanks for your Support!

Big thanks to all of the Patreon supports and company sponsors. If you want to support the newsletter you can checkout the Patreon page. It's not necessary, but it lets me know that I'm doing a good job and that you're finding value in the content.