Derek Comartin

11.8K posts

Derek Comartin banner
Derek Comartin

Derek Comartin

@codeopinion

👑 Context is King 💻 Software Architecture & Design 📺 https://t.co/zMGP2Ktbn4

Canada Katılım Kasım 2008
214 Takip Edilen11.9K Takipçiler
Sabitlenmiş Tweet
Derek Comartin
Derek Comartin@codeopinion·
Random reminder that I have a YouTube channel where I post videos about software architecture and design. Usually in the 10 min range trying be concise as possible. If you enjoy please share. Have suggestions? Please let me know. @codeopinion" target="_blank" rel="nofollow noopener">youtube.com/@codeopinion
English
7
22
146
37.8K
Derek Comartin
Derek Comartin@codeopinion·
Friendly reminder: I have a YouTube channel that is 30 subscribers away from the useless 100k-subscriber vanity metric. @CodeOpinion" target="_blank" rel="nofollow noopener">youtube.com/@CodeOpinion
Derek Comartin tweet media
English
1
1
6
466
Derek Comartin
Derek Comartin@codeopinion·
A Saga coordinates a process. Reconciliation corrects drift. It's not a cleanup job and it's not replacement for Sagas, but as a safety net around them. Use the Saga to move the workflow forward. Use reconciliation to ask "What should be true, what is actually true, and how do we safely correct if needed?”
English
1
0
4
611
Derek Comartin
Derek Comartin@codeopinion·
@omardelrio If have to think how to qualify when it's appropriate. That's actually a good video topic
English
0
0
0
53
Omar DR
Omar DR@omardelrio·
@codeopinion IMO, EDA is something everyone thinks they need, but only a few really do. Maybe the architectural concepts are more widely applicable, but people go wild with just frameworks and tech because that's what they like to do.
English
1
0
0
82
Derek Comartin
Derek Comartin@codeopinion·
"We switched to event-driven architecture. Now we can’t debug anything." The problem usually isn’t event-driven architecture. It’s treating everything as an event, making everything async, losing visibility, and confusing commands with events. EDA isn’t your whole architecture. It’s one part of it. Use the right communication style for the outcome you need. codeopinion.com/debugging-even…
English
1
0
10
1.6K
Derek Comartin
Derek Comartin@codeopinion·
Fairly certain Koodo's (cell provider in Canada) portal runs on a 486 connected to a 14.4k modem.
English
2
0
0
572
Derek Comartin retweetledi
Eric Hydrick
Eric Hydrick@erichydrick·
I wholeheartedly endorse this @codeopinion take:
Eric Hydrick tweet media
English
1
2
10
915
Derek Comartin
Derek Comartin@codeopinion·
Probably should roll your own DB while you're at it.
English
1
0
4
557
Derek Comartin retweetledi
Logic Geometry, Information
In complex systems (and complicated projects are such systems) almost-always something breaks in a way that you did not expect (even in your most fastidious threat-models, contingency-plans, etc.) There simply are too many possibilities for adverse events; too many failure-modes.
English
1
1
3
674
Derek Comartin
Derek Comartin@codeopinion·
I'm not saying don't use you're DB as a queue but you need to realize all the patterns you're about to implement to make it behave like one. Also, if immediately think of Kafka or redis first of you need a queue, that's like thinking of an excel file when you need a database.
English
0
0
1
496
Derek Comartin
Derek Comartin@codeopinion·
Kafka is a distributed log Redis/Postgres are data stores None of these are “just queues”. You’re adding the semantics and patterns on top to (somewhat) behave like a queue That matters because the trade-offs are very different.
Ben Dicken@BenjDicken

Choose the right tool for the job. For queues, we typically think Kafka, Redis, RabbitMQ. But sometimes the right tool for the job is the one you're already using: Postgres. An excellent writeup on how to do this + the technical gotchas.

English
3
0
14
3.7K
Derek Comartin
Derek Comartin@codeopinion·
Seems like people think "good architecture" means adding layers, interfaces, and abstractions everywhere. But a lot of the time, that’s just an upfront tax on delivery. If I have one ProcessPayment handler, one Stripe integration, and one place where it’s used… why am I also creating an IPaymentService just to wrap it? That extra indirection doesn’t magically make the system more flexible. If anything, it often makes change slower. The slice is already the boundary! Pragmatic architecture isn’t about avoiding all coupling or following every pattern. It’s about keeping dependencies contained, organizing around change, and not paying for flexibility you don’t actually need yet.
English
3
4
31
2.4K
Derek Comartin
Derek Comartin@codeopinion·
The term "event-driven architecture" has a lot of people confused. Events as state or events as notifications. I see these two concepts lumped together all the time, but mixing them up is a shortcut to architectural turd pile. Event sourcing uses events as the source of truth which you can derive state from. Notifications use events to let other parts of the system react to something that already happened. Same concept on the surface, very different design purpose underneath. And when those two get lumped together, it creates a lot of confusion about when each approach actually makes sense.
English
1
2
21
2.2K
Derek Comartin
Derek Comartin@codeopinion·
My timeline loves people who feel strongly against Garry Tan.
English
0
0
3
526