CTRL ALTSCtrl Alt Solvereal-world developer knowledge
SearchJoin
Ctrl Alt Solve — Don't just ask what to do. Learn what developers experienced when they did it.

Developer experience network

Ctrl Alt Solve

Real-world experiences, production lessons, and structured discussions — knowledge that goes beyond tutorials.

Search

Explore by technology

Open an experience to follow topics you care about.

#postgres·135#queues·91#redis·91#observability·87#sre·87#opentelemetry·87#networking·78#career·78#leadership·78#debugging·78#nginx·78#nextjs·73#edge·73#auth·73#architecture·68#billing·68

Experience feed

Newest posts first

DiscoverLatestFor you
AllQuestionExperienceDiscussionComparisonCase studyLearningProblem solvingRecommendationShowcaseCareer
Comparison3d ago·1 entry

from invoice generation when the cache went cold

We ran into this around invoice generation when the cache went cold. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#invoice generation
SSwetha Krishnan
Read →
Comparison3d ago·1 entry

we hit with the admin dashboard during a traffic spike

We ran into this around the admin dashboard during a traffic spike. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#the admin dashboard
SSrinivas Rao
Read →
Comparison4d ago·1 entry

production note on team onboarding after we split the monolith

We ran into this around team onboarding after we split the monolith. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#team onboarding
HHarika Reddy
Read →
Comparison5d ago·1 entry

from invoice generation after we split the monolith

We ran into this around invoice generation after we split the monolith. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#invoice generation
GGopi Chand
Read →
Comparison6d ago·1 entry

we hit with the admin dashboard while rolling back payments

We ran into this around the admin dashboard while rolling back payments. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#the admin dashboard
RRebecca Stone
Read →
Comparison6d ago·1 entry

production note on team onboarding on a quiet Sunday incident

We ran into this around team onboarding on a quiet Sunday incident. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#team onboarding
SSandeep Reddy
Read →
Comparison7d ago·1 entry

from invoice generation on a quiet Sunday incident

We ran into this around invoice generation on a quiet Sunday incident. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#invoice generation
SSandeep Reddy
Read →
Comparison8d ago·1 entry

we hit with the admin dashboard after the replica failover

We ran into this around the admin dashboard after the replica failover. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#the admin dashboard
VVikram Chauhan
Read →
Comparison9d ago·1 entry

from invoice generation during a Friday deploy

We ran into this around invoice generation during a Friday deploy. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#invoice generation
RRajesh Yadav
Read →
Comparison9d ago·1 entry

production note on team onboarding during a Friday deploy

We ran into this around team onboarding during a Friday deploy. We did not rewrite the service. We moved one endpoint at a time. Dual writes ran until nightly totals matched for several days. A flag sent a small percentage of reads to the new path. The hard part was matching rounding the old code had hidden. Cutover finished with a small blast radius and an easy rollback.

0 views0 likes0 comments0 bookmarks
#team onboarding
BBalaji Rao
Read →
Comparison14d ago·1 entry

vs Postgres for short-lived job locks

We needed locks so queue workers did not process the same job twice. Redis SET NX was faster under load and easy to expire automatically. Postgres advisory locks were simpler operationally for our small team. Failover behavior mattered more than raw latency in our case. We chose Postgres first, then moved hot paths to Redis later. Pick the lock store you can operate confidently at 3am.

400 views0 likes0 comments0 bookmarks
#queues#postgres#redis
PPooja Chauhan
Read →
Comparison14d ago·1 entry

vs Postgres for short-lived job locks

We needed locks so queue workers did not process the same job twice. Redis SET NX was faster under load and easy to expire automatically. Postgres advisory locks were simpler operationally for our small team. Failover behavior mattered more than raw latency in our case. We chose Postgres first, then moved hot paths to Redis later. Pick the lock store you can operate confidently at 3am.

136 views0 likes0 comments0 bookmarks
#queues#postgres#redis
RRohith Hegde
Read →