DynamoDB Pricing

DynamoDB can get very expensive, very fast. The example below demostartes that and a quick learning point. “If you were planning on storing YouTube views in Dynamo, you may calculate that each item is just a userId, videoId, and timestamp which is about 100 bytes. This means that you could store 10,000 views per second on a single shard. If you expect to have 10,000,000 views per second, you’d need ~1,000 shards to support the write load, which could cost approximately $150,000 per day based on current pricing”1 ...

June 7, 2025 · 2 min · Dinesh Auti

Cap Theorem: Eric A. Brewer

Eric A. Brewer first introduced the CAP theorem as a keynote talk at the 2000 Symposium on Principles of Distributed Computing (PODC), titled “Towards Robust Distributed Systems” . The original presentation slides from this keynote—created by Brewer himself are available here Brewer’s later reflections and clarifications on the theorem, his 2012 article “CAP Twelve Years Later: How the ‘Rules’ Have Changed” Understanding the CAP theorem has been a game changer for me while reading papers on large scale distributed systems like Amazon Dynamo and Google File Systems. The more I learn to apply it and see how it is being applied makes it feel more natural like the laws of physics. ...

June 2, 2025 · 1 min · Dinesh Auti

Hugo Open External Links in a New Tab

The default behaviour in Hugo is not open a new tab for external links. This little snippet does the trick using render hooks. It looks complicated unless you have a basic understanding of the go templating packages Create a new file layouts/_default/_markup/render-link.html and add the below. Thats it! <a href="{{- .Destination | safeURL -}}"{{ with .Title}} title="{{- . -}}"{{ end }}{{ if strings.HasPrefix .Destination "http" }} target="_blank" rel="nofollow noopener noreferrer" {{ end }}>{{- .Text | safeHTML -}}</a> References Hugo: open external links in a new tab

May 30, 2025 · 1 min · Dinesh Auti

Hugo Line Break

By default, Hugo does not render the <br /> HTML tag for line breaks. To insert a line break in your content, add two spaces at the end of a line.

May 28, 2025 · 1 min · Dinesh Auti

Evolution of Automation

No automation: Database master is failed over manually between locations. Externally maintained system-specific automation: An SRE has a failover script in his or her home directory. Externally maintained generic automation: The SRE adds database support to a “generic failover” script that everyone uses. Internally maintained system-specific automation: The database ships with its own failover script. Systems that don’t need any automation: The database notices problems, and automatically fails over without human intervention. Ofcourse, SREs want systems that inherently do what is required and there is no need for external elements to manage the system. ...

May 26, 2025 · 1 min · Dinesh Auti

Hugo Homepage Mainsections

You can control which sections of content appear on your Hugo homepage using the mainSections setting in your site configuration (config.yaml or config.toml). By default, Hugo may show all posts, but specifying mainSections lets you limit the homepage to specific sections. For example, to display only posts from the posts and til sections, add the following to your config: mainSections: ["posts", "til"]

May 26, 2025 · 1 min · Dinesh Auti