The Loosely Coupled Show
By James Hickey
The Loosely Coupled ShowJun 26, 2020
Domains & Experience Reports
James and Derek discuss various domains and projects that they have worked on in their careers.
#softwarearchitecture #softwaredevelopers #softwarepodcast
AsyncAPI with Fran Méndez
We chatted with AsyncAPI founder Fran Méndez about what AsyncAPI is, where it came from, and its new partnership with Postman.
Fran Méndez
https://twitter.com/fmvilas
https://www.asyncapi.com
https://asyncapi.com/slack-invite
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Caching Pro-Tip: DON'T. Caching is difficult.
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Microservices: Consistency or Availability?
We talk a bit about CAP Theorem in regards to Microservices. When partitions occur, do systems lean towards Consistency or Availability? With autonomy, should you even care?
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Organizing Code by Features
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Should I Learn a Functional Programing Language (F#)?
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Event Modeling with Adam Dymitruk
Event Modeling is a method of describing systems using an example of how information has changed within them over time. Specifically this omits transient details and looks at what is durably stored and what the user sees at any particular point in time. These are the events on the timeline that form the description of the system.
Adam Dymitruk
https://twitter.com/adymitruk
https://www.adaptechgroup.com/
https://eventmodeling.org/
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Events Everywhere! Different Type of Events in a Distributed System
Just saying "event" doesn't mean much without context. There's so many meanings and how you can use events in a distributed system. Domain Events, Integration Events, Event Sourcing, Thin Events, Fat Events, Event Carried State Transfer.... the list goes on.
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Blazor: Our first impressions with Andrew Lock
Are you on the Blazor train? Some of us are hesitant with scars from the past, even though they might not be warranted.
Andrew Lock
https://andrewlock.net
https://twitter.com/andrewlocknet
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
RabbitMQ & Kafka with Andrew Lock
Andrew Lock talks about his experience with both RabbitMQ to Kafka. The challenges with RabbitMQ and how they were solved by moving to Kafka.
Andrew Lock
https://andrewlock.net
https://twitter.com/andrewlocknet
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Testing Controllers, Messages & Systems with Andrew Lock
Andrew Lock joins us to talk about testing. We started out by talking about should you test API/MVC controllers? The discussion then turned into testing for messaging, databases, and much more.
Should you unit-test API/MVC controllers in ASP.NET Core?
https://andrewlock.net/should-you-unit-test-controllers-in-aspnetcore/
Andrew Lock
https://andrewlock.net
https://twitter.com/andrewlocknet
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Fallacy of Distributed Computing: Latency is Zero
Udi Dahan posted (per usual) a great graphic that points out latency scaled to how we comprehend it. We add synchronous network calls to database, caches and other services without thinking of the latency it will add.
https://twitter.com/UdiDahan/status/1303694890992390144
🔔 Subscribe: https://www.youtube.com/channel/UCNX9EQV4aEfa6fa9o6qcdEQ?sub_confirmation=1
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Loosely Coupled Monolith
Monoliths don't need to be a big ball of mud. Microservices don't need to be a distributed ball of mud. James and Derek talk about striking a balance and how using strictly defined boundaries and asynchronous messaging can go a long way.
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
State of Community & OSS in .NET
James and Derek discuss the .NET Community and the state of OSS including the .NET Foundation.
What do they do again?
Are there more experienced developers in older technologies?
Are there more junior developers using Node.js? Are .NET/Java Developers just old and writing boring line of business apps?
Thoughts About Uber's "DOMA" Architecture
Uber Engineering released a blog post of their current architecture named "Domain-Oriented Microservices (which was removed, then re-posted). There was quite the buzz on Twitter about it. Here are our strong opinions about what they are doing in comparison to Domain Driven Design and SOA.
The day we recorded the article "Introducing Domain-Oriented Microservice Architecture" by Uber Engineering Blog was unavailable. It seems to be available again:
https://eng.uber.com/microservice-architecture/
Hosted By:
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
When should you use CQRS?
What is CQRS? Is it all about complex asynchronous processing or is it simpler than that? When should you consider using CQRS anyways? Are there different ways to achieve the benefits that CQRS offers?
Derek and James offer their strongly held yet loosely coupled opinions on these issues and more!
James Hickey:
- https://twitter.com/jamesmh_dev
- https://www.jamesmichaelhickey.com/
Derek Comartin
- https://twitter.com/codeopinion
- https://codeopinion.com
Limiting Packages And Dependencies In Software Projects
What's the state of third-party packages in the software development industry today? How do third-party packages affect security, maintainability & ownership?
James and Derek share their ideas on these issues and more!
James Hickey:
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin:
Software Specifications
Derek and James discuss their own experience in dealing with specifications. They then move on to chatting about what makes for a good specification, who is responsible, etc.
James Hickey:
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin:
Code Reviews
Derek and James talk about their experiences with code reviews. What's been difficult, what's work well and what are the main benefits to code review... and... what are they NOT good for?
James Hickey:
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin:
Software Testing
Derek and James chat about how they like to test software (unit, integration, etc) and what different reasons exist to test in the first place.
James Hickey:
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin:
Interview With Adam Ralph: SOA, Microservices, Service Boundaries
Adam Ralph (https://twitter.com/adamralph) is a software developer and an open source advocate with a keen interest in distributed systems design, DDD, CQRS and event sourcing.
2:50 Microservices vs SOA
6:30 Technical vs Capabilities
11:00 Service Boundaries
18:50 Carving out a Monolith
26:00 Physical vs Logical
36:13 Service Communication
42:30 Pipes
47:50 4+1 Architectural View Model
James Hickey:
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin:
Hypermedia as the Engine of Application State (HATEOS)
In this episode, James & Derek talk about Hypermedia used in HTTP APIs. More specifically they discuss Hypermedia as the Engine of Application State and how it's useful in what type of systems.
3:55 Workflow & State Transitions
7:35 Hypermedia Clients
16:10 Driving the UI & Visibility
23:25 Opaque URIs
35:30 Tooling
40:20 State Machine
48:22 Downsides
James Hickey
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Interview With Nate Barbettini Part 2: Domain-Driven Design
This is is part 2 of our discussion with Nate where we talk more about Domain-Driven Design.
3:50 DDD in a Startup
8:50 Boundaries & Explicit
16:45 Entity Identification
26:55 API Design
32:05 Cross-Boundary & Consistency
43:30 Database First
James Hickey:
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Remote Work
We chat about topics like:
0:30 Changes in Remote Work
2:30 Fully Remote vs Partially Remote
4:50 Krisp.ai
10:10 Struggles working remote
15:40 Interruptions
22:30 Group Reviews
24:10 Conventions
30:30 Vertical Slices
32:50 Communication & Documentation
38:10 Evolving Architecture & Design
46:30 Talking with the business
Links:
Krisp.ai
https://ref.krisp.ai/u/u40a218a54?utm_source=refprogram&utm_campaign=4584&locale=en-US
James Hickey:
https://twitter.com/jamesmh_dev
https://www.jamesmichaelhickey.com/
Derek Comartin
https://twitter.com/codeopinion
https://codeopinion.com
Interview With Nate Barbettini: OAuth, GraphQL, Event Sourcing
Nate is the co-founder and CTO of Cobbler and a former Microsoft MVP. He previously worked at Okta as a developer advocate and is the author of the Little ASP.NET Core Book.
Links:
OAuth 2.0 and OpenID Connect (in plain English)
https://www.youtube.com/watch?v=996OiexHze0
http://littleasp.net/book
https://twitter.com/nbarbettini
James Hickey:
https://www.jamesmichaelhickey.com/
https://twitter.com/jamesmh_dev
Derek Comartin:
https://codeopinion.com
https://twitter.com/codeopinion
Interview With Steve Smith: Architecture, SOLID, Domain Driven Design
Steve Smith (@ardalis) is an entrepreneur and software developer with a passion for building quality software as effectively as possible. He provides mentoring and training workshops for teams with the desire to improve. Steve has been recognized as a Microsoft MVP for over 10 consecutive years, and is a frequent speaker at software developer conferences and events. Connect with Steve at ardalis.com.
Links:
https://weeklydevtips.com
https://ardalis.com/new-is-glue
https://deviq.com/explicit-dependencies-principle/
https://twitter.com/ardalis
James Hickey: https://twitter.com/jamesmh_dev
Derek Comartin: https://twitter.com/codeopinion
Introduction
Welcome to the new Loosely Coupled Show by James Hickey and Derek Comartin. We'll be covering topics around software architecture and design with various guests in the software industry.
James Hickey: https://twitter.com/jamesmh_dev
Derek Comartin: https://twitter.com/codeopinion