- Reactive database access on the JVM
-
A couple of years ago, Reactive Programming was all the rage, but it had one big issue: reactive stopped as soon as you accessed a SQL database. You had a nice reactive chain up to the database, defeating the whole purpose. Given the prevalence of SQL databases in existing and new apps, one couldn’t enjoy the full benefits of Reactive Programming but still pay the full price of complexity.
Since then, the landscape has changed tremendously. Most importantly, it offers many reactive drivers over popular databases: PostgreSQL, MariaDB and MySQL, Microsoft SQL Server, Oracle, you name it! Even better, some frameworks provide a reactive API over them.
Even though I’m not providing consulting services regularly, I wanted to keep up-to-date on accessing data reactively. In this post, I’ll describe Hibernate Reactive, Spring Data R2DBC, and jOOQ in no particular order.
- Top-3 Helm Plugins
-
- Helm Secrets
- Helm Diff
- Helm Git
- 20 years of Git. Still weird, still wonderful
-
A walkthrough of Git’s history by one of its early adopters and GitHub co-creator.
- The Synchrony Budget
-
For building a system of distributed services, one concept I think is very valuable to keep in mind is what I call the synchrony budget: as much as possible, a service should minimize the number of synchronous requests which it makes to other services.
- GitHub Actions by Example
-
I love learning by example. This site is great at teaching you the ropes of GitHub Actions by example.
- Components vs. Containers: Fight?
-
WebAssembly components offer a new way to deploy microservices and other applications in cloud native environments. This naturally raises the question: is the upstart component out to replace containers? Or is this one of those situations where the apparent rivals need to learn to work together?
For a proper answer, we need to examine the similarities and differences between the two technologies, and then consider how we should understand their respective use-cases—both taken independently or working in tandem.
Then we’ll explore how WebAssembly (Wasm) can extend the frontiers of container orchestration across multiple clouds, edges, and devices.
- The Octocat—a nerdy household name
-
And now for something completely different, the genesis of the Octocat mascot.
- The AAARRRP Developer Relations Strategy Framework
-
- Awareness - users become aware of your product
- Acquisition - users signup for your product
- Activation - users successfully use your product
- Retention - users continue to use the product and potentially increase usage
- Referral - users like product and company brand enough to refer others
- Revenue - users conduct some monetizing behavior
- Product - users and the developer relations team help define and build the product as well as gather feedback from users to enhance your product
- PEP 750 – Template Strings
-
Template strings are a generalization of f-strings, using a
t
in place of thef
prefix. Instead of evaluating tostr
, t-strings evaluate to a new type,Template
:template: Template = t"Hello {name}"
Templates provide developers with access to the string and its interpolated values before they are combined. This brings native flexible string processing to the Python language and enables safety checks, web templating, domain-specific languages, and more.
- Stop Just Loosening Coupling — Start Strengthening Cohesion Too
-
Good advice, but hard to follow!
- Kubernetes’ New StopSignal Explained
-
TIL!
- How Indexes Work in Partitioned Databases
-
The post explains the pros and the cons of local indexes vs. global indexes in the context of partitioned databases.