027: Giving Technical PresentationsShow Details34min 15s
026: PasswordsShow Details59min 6s
025: Breaking Up With Your StackShow Details1hr 1min
024: The Archetype of an Effective DeveloperShow Details1hr 25min
023: Book Club #1 Clean Code by "Uncle Bob" Martin (pt2)Show Details1hr 6min
022: Book Club #1 Clean Code by "Uncle Bob" Martin (pt1)Show Details1hr 11min
021: Listener Questions #2Show Details1hr 21min
020: Carol Needs a ConsultShow Details58min 15s
019: MakefilesShow Details1hr 15min
018: Feature Flags (Finally!)Show Details1hr 25min
017: Premature OptimizationShow Details53min 47s
016: InterviewingShow Details1hr 16min
015: Potluck #1Show Details1hr 22min
014: Zen and the Art of Pull RequestsShow Details1hr 12min
013: Do What You Love And You'll Never Work A Day In Your LifeShow Details46min 51s
012: Idiomatic CodeShow Details42min 3s
011: Listener Questions #1Show Details1hr 10min
010: ScalingShow Details1hr 9min
009: TestingShow Details58min 13s
008: Origin Stories Pt 2Show Details1hr 11min
007: Origin Stories Pt 1Show Details58min 5s
006: Hopes for 2021Show Details57min 13s
005: Monolith vs. MicroservicesHide Details42min 44s
42min 44sPublished Jan 13, 2021 at 12:00pm
Monoliths are bad! Microservices are good! These are the "obvious" truths that many engineers hold close to heart. So, why is it that Ben Nadel has been slowly merging some of his Microservices back into his Monolith? It turns out that a Monolith - like a Microservice - is a valid architectural choice that carries its own set of pros and cons. And, for him, his team, and their particular set of skills, the Monolith is proving to contain the right set of trade-offs.
This week, the crew talks about Ben's journey; why InVision started using Microservices in the first place; and, what made him realize that it was time to start pulling services back into the core Monolith. There are no hard truths here - only thoughtful, context-aware considerations.
Follow the show! Our website is workingcode.dev and we're @WorkingCodePod on Twitter & Instagram. New episodes weekly on Wednesday.
Triumphs & Fails
- Adam's Triumph - He took the week off! He's usually not that good about taking time off; so, taking a whole week off between Christmas and New Year's was actually quite relaxing.
- Ben's Triumph - He managed to stay production at work during the "deployment freeze" that takes place during the holidays! This meant creating lots of small, parallel git branches tied up in a bow, ready and waiting for the 2021 deployments to begin.
- Carol's Triumph - She stayed up until 3am writing Unit Tests! She doesn't often work in an environment that does much testing; so, this was a new and thrilling experience. Who knew that one could be so happy thinking about the unhappy path!
- Tim's Triumph - He also took the week off (his company always takes Christmas week off)! But, he's not used to taking so much time off; and, he started to get bored by Thursday (such a classic engineer).
Notes & Links
- GitHub "Draft" pull-requests - it's just like a regular Pull Request (PR); but, it's intended to be a "work in progress" (WIP).
- Silento - Watch Me (Whip/Nae Nae) - official music video.
- Archer - a wonderfully raunchy animated series about spies (for adults). Sploosh!
- Microservices - an architectural choice, write-up by Martin Fowler
- Monolithic application - an architectural choice.
- Conway's Law - how organizational structure relates to programming structure:
- Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.
- Single-Tenant architecture - configuration in which one customer shares no resources with another customer.
- Multi-Tenant - configuration in which many customers share the same set of resources (such as all existing in the same database).
- Single Page Application (SPA) - a common front-end application architecture in which the front-end dynamically re-renders the UI based on data-fetches.
- Distributed Monolith / Microlith - an architectural anti-pattern in which you combine the worst properties of both monoliths and microservices while reaping none / few of the rewards.
- ColdFusion / Lucee CFML - a modern web programming language for dynamic server-side rendering.
- Mark Richards - The Rise and Fall of Microservices - presentation from O'Reilly Software Architecture Conference 2019.
- Sam Newman - Building Microservices - the canonical book on Microservices.
- Sam Newman - Monolith To Microservices: Evolutionary Patterns To Transform Your Monolith - Sam's follow-up book to Building Microservices - it should be required reading.
- Simon Brown - Modular Monoliths - presentation from DevNexus 2016 that famously had the slide:
- If you can't build a well-structured monolith, what makes you think microservices is the answer?
- Amazon AWS Lambda - serverless compute services.
- Amazon AWS Fault-Injection Simulator - aka, Chaos Monkey as a Service.
- Amazon Cloudwatch - a reliable, scalable, and flexible monitoring solution.
- Kevin Conway - Principal engineer at InVision and a strong proponent for microservices.
- Chris Richardson - he was doing Microservices before there were Microservices. He's the maintainer of microservices.io.
- Hype Cycle - from the "Peak of Inflated Expectations" to the "Trough of Disillusionment" and every emotion in between, this is how the technology world experiences new technology.
- Reactive Manifesto - an approach to building robust applications.
- Lagom Reactive Microservices framework - an opinionated microservices framework.
004: Impostor SyndromeShow Details1hr 18min
003: Burnout, Mental Exhaustion, and ProductivityShow Details1hr 4min
002: Working from homeShow Details54min 24s
001: Adam's Secret ShameShow Details1hr 8min
000: Hello, World!Show Details8min 4s