Distributed Locking with Postgres Advisory Locks
TL;DR
Postgres Advisory Locks are a great solution for arbitrary application locks, particularly in scenarios where you are already using Postgres and have a need to block concurrent mutations to a resource (that resource DOES NOT have to be data in Postgres).
Concurrency is hard
We ran into a problem . . .
Posted in: microservicesnodejspostgres
WebSequenceDiagrams.com TypeScript Client
https://gist.github.com/rclayton-the-terrible/493cd0811542ff9693ac02746517ba71
TL;DR - TypeScript Client Gist: https://gist.github.com/rclayton-the-terrible/493cd0811542ff9693ac02746517ba71
If you are not familiar with WebSequenceDiagrams, it's an excellent tool for creating sequence diagrams for planning software flows. If you are not familiar with sequence diagrams, a quick Google search will . . .
Posted in: architecturenodejstypescript
What's Making Me Happy - 01/21/2019
React w/out Redux, Kubernetes Node Draining, and Customizing DataDog
Hey friends, welcome back to WMMH! It's about a month since my last post -- my sincere apologies; work and vacation have sapped my free time. Fortunately, the extra time has given me more things to be happy about!
Over the last couple of weeks, I have been working on various projects up and down the stack. This work included . . .
Posted in: kuberneteswmmh
Kube-Native Workflows with Argo
Stitching Docker containers together to get stuff done fast!
About a month ago, was looking for a tool to help automate some of the analytic jobs our data scientist built in Python. My goal was to automate the following process:
- Execute Python jobs that analyze the day's activities, producing a CSV output.
- Create a new table in Postgres (that hold the CSV data).
- Insert the . . .
Posted in: architecture
Implementing "Options Object" Pattern using TypeScript and Joi
The Options Object pattern [1][2] is a technique in JavaScript for configuring a component using a single function parameter:
const client = createClient({
host: 'localhost',
port: 12345,
username: 'foobar',
password: 'work-at-peachjar',
});
This approach has many benefits over . . .
What's Making Me Happy - 11/30/2018
Grafana, TimescaleDB, Apache Beam, and ThoughtWorks Tech Radar Q4
Hey folks, sorry I missed the last couple of weeks (was out on vacation or busy at work). However, I'm back just in time for the holidays with another addition of "WMMH" in the software world.
The theme for this week is data analytics. I've been working on a metrics project at work and have been pleasantly surprised . . .
What's making me happy - 11/07/2018
Inspired by NPR's Pop Culture Happy Hour, I'm going to try posting once a week about topics in technology that are making me happy.
Lately, I've been working on our EDA platform at Peachjar that uses NATS as a Command/Query transport and Kafka as an event store. Naturally, adding any technology to your infrastructure . . .