SlideShare a Scribd company logo
The service-mesh landscape
@christianposta
Christian Posta
Chief Architect, cloud application development
Twitter: @christianposta
Blog: http://blog.christianposta.com
Slides: http://slideshare.net/ceposta
• Author “Microservices for Java developers”
and “Introducing Istio Service Mesh”
• Committer/contributor lots of open-source projects
• Blogger, speaker, mentor, leader
API World: The service-mesh landscape
Microservice
A highly distracting word that serves to confuse developers, architects,
and IT leaders into believing that we can actually have a utopian application
architecture.
@christianposta
Microservice
A highly distracting word that serves to confuse developers, architects,
and IT leaders into believing that we can actually have a utopian application
architecture.
An architecture optimization that treats the modules of an application
as independently owned and deployed services for the purposes of
increasing an organization’s velocity
@christianposta
@christianposta
Microservices
@christianposta
Our services need to connect to
each other to provide overall
business value.
http://bit.ly/application-networking
Hub and Spoke
API World: The service-mesh landscape
http://signallake.com/innovation/soaNov05.pdf
http://signallake.com/innovation/soaNov05.pdf
http://signallake.com/innovation/soaNov05.pdf
http://bit.ly/application-networking
https://www.bbc.co.uk/news/business-11944966
Conway’s law strikes!
Integration sucks! Just do REST/HTTP!
@christianposta
http://bit.ly/application-networking@christianposta
@christianposta
Come on… how hard can it be!?
@christianposta
@christianposta
@christianposta
@christianposta
As we move to services architectures,
we push the complexity to the space
between our services.
@christianposta
New challenges in a cloudy, services world
• Service discovery
• Retries
• Timeouts
• Load balancing
• Rate limiting
• Thread bulk heading
• Circuit breaking
@christianposta
…continued
• Routing between services (adaptive, zone-aware)
• Deadlines
• Back pressure
• Outlier detection
• Health checking
• Traffic shaping
• Request shadowing
@christianposta
…continued
• Edge/DMZ routing
• Surgical / fine / per-request routing
• A/B rollout
• Internal releases / dark launches
• Fault injection
• Stats, metric, collection
• Logging
• Tracing
Oh yah... And....
Security
• Netflix Hystrix (circuit breaking / bulk heading)
• Netflix Zuul (edge router)
• Netflix Ribbon (client-side service discovery / load balance)
• Netflix Eureka (service discovery registry)
• Brave / Zipkin (tracing)
• Netflix spectator / atlas (metrics)
“Microservices” patterns
But I’m using Spring!
• spring-cloud-netflix-hystrix
• spring-cloud-netflix-zuul
• spring-cloud-netflix-eureka-client
• spring-cloud-netflix-ribbon
• spring-cloud-netflix-atlas
• spring-cloud-netflix-spectator
• spring-cloud-netflix-hystrix-stream
• …..
• ......
• @Enable....150differentThings
But I’m using Vert.x!
• vertx-circuit-breaker
• vertx-service-discovery
• vertx-dropwizard-metrics
• vertx-zipkin?
• …..
• ......
Screw Java - I’m using NodeJS!
JavaScript is for rookies, I use Go!
But python is so pretty!
I prefer unreadability… Perl for me!
• Require specific language to bring in new services
• A single language doesn’t fit for all use cases
• How do you patch/upgrade/manage lifecycle?
• Need strict control over application library choices
• Inconsistent implementations
• Incorrect implementations
Some drawbacks to this approach?
@christianposta
Let’s abstract this functionality to a single
binary and apply to all services.
• Allow heterogeneous architectures
• Remove application-specific implementations of this
functionality
• Consistently enforce these properties
• Correctly enforce these properties
• Opt-in as well as safety nets
@christianposta
@christianposta
@christianposta
A service mesh is decentralized, application-agnostic,
networking infrastructure between your services
that can be programmed to provide more resilient and
observable service to service communication
@christianposta
Time for definitions:
@christianposta
Service mesh technologies typically provide:
• Service discovery / Load balancing
• Secure service-to-service communication
• Traffic control / shaping / shifting
• Policy / Intention based access control
• Traffic metric collection
• Service resilience
@christianposta
Resilience with timeouts, retries, budgets,
circuit breakers, service discovery, etc
@christianposta
Zone aware, sophisticated
client-side load balancing
@christianposta
Fine-grained traffic control and routing
@christianposta
http://bit.ly/application-networking
Traffic shadowing
@christianposta
Secure transport with mTLS
@christianposta
Metrics, logs, distributed tracing out of the box
http://bit.ly/application-networking
Three open-sourced
service mesh projects
Meet Linkerd
http://linkerd.io
Linkerd2
• Control plane / data plane constructs
• Originally introduced in December 2017 as “Conduit”
• In “alpha” release
• Collect top-level metrics
• Resilience, timeouts, retry budgets
• Experimental TLS
API World: The service-mesh landscape
Meet Consul Connect
http://consul.io
Consul Connect
• Control plane (consul server) / data plane (proxies/app)
• Part of Consul 1.2 release, June 2018
• Secure, mTLS communication
• Builds on Consul’s discovery and configuration capabilities
• Service segmentation, intention-based ACL policy
• Native app integration for latency/performance sensitive apps
API World: The service-mesh landscape
Meet Istio.io
http://istio.io
Istio
• Control plane / data plane
• 1.0 GA July 2018
• Collaboration between Google, IBM, Lyft, VMWare, Red Hat,
et al.
• Based on Envoy proxy
• mTLS, policy based ACL, resilience, observability, traffic
control
API World: The service-mesh landscape
Demo?
http://bit.ly/istio-tutorial
Thanks!
BTW: Hand drawn diagrams made with Paper by FiftyThree.com 
Twitter: @christianposta
Blog: http://blog.christianposta.com
Email: christian@redhat.com
Slides: http://slideshare.net/cepostaFollow up links:
• http://blog.christianposta.com
• http://istio.io
• http://envoyproxy.io
• http://linkerd.io
• http://consul.io
• http://bit.ly/istio-tutorial
• http://blog.christianposta.com/istio-workshop/slides/

More Related Content

PPTX
Multicluster Kubernetes and Service Mesh Patterns
PPTX
Kubernetes Ingress to Service Mesh (and beyond!)
PPTX
The Truth About the Service Mesh Data Plane
PPTX
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
PPT
Multi-cluster service mesh with GlooMesh
PPTX
PHX DevOps Days: Service Mesh Landscape
PPTX
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
PPTX
Role of edge gateways in relation to service mesh adoption
Multicluster Kubernetes and Service Mesh Patterns
Kubernetes Ingress to Service Mesh (and beyond!)
The Truth About the Service Mesh Data Plane
Service-mesh options with Linkerd, Consul, Istio and AWS AppMesh
Multi-cluster service mesh with GlooMesh
PHX DevOps Days: Service Mesh Landscape
Leveraging Envoy Proxy and GraphQL to Lower the Risk of Monolith to Microserv...
Role of edge gateways in relation to service mesh adoption

What's hot (20)

PPTX
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
PPTX
Evolution of integration and microservices patterns with service mesh
PPTX
API Gateways are going through an identity crisis
PPTX
Chaos Debugging for Microservices
PPTX
Intro Istio and what's new Istio 1.1
PPTX
Cloud-Native Application Debugging with Envoy and Service Mesh
PPTX
Making sense of microservices, service mesh, and serverless
PPTX
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
PDF
Layer 7 Observability and Centralized Configuration with Consul Service Mesh
PDF
The Service Mesh: It's about Traffic
PPTX
Istio a service mesh
PDF
Integration Microservices
PPTX
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
PDF
Service mesh on Kubernetes - Istio 101
PDF
Microservices for Enterprises
PDF
Open Source Networking Days- Service Mesh
PDF
Microservice Architecture
PDF
Microservice architecture-api-gateway-considerations
PDF
Nats meetup sf 20150826
PDF
Microservices
KubeCon NA 2018: Evolution of Integration and Microservices with Service Mesh...
Evolution of integration and microservices patterns with service mesh
API Gateways are going through an identity crisis
Chaos Debugging for Microservices
Intro Istio and what's new Istio 1.1
Cloud-Native Application Debugging with Envoy and Service Mesh
Making sense of microservices, service mesh, and serverless
Navigating the service mesh landscape with Istio, Consul Connect, and Linkerd
Layer 7 Observability and Centralized Configuration with Consul Service Mesh
The Service Mesh: It's about Traffic
Istio a service mesh
Integration Microservices
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
Service mesh on Kubernetes - Istio 101
Microservices for Enterprises
Open Source Networking Days- Service Mesh
Microservice Architecture
Microservice architecture-api-gateway-considerations
Nats meetup sf 20150826
Microservices
Ad

Similar to API World: The service-mesh landscape (20)

PPTX
The Hardest Part of Microservices: Calling Your Services
PPTX
Microservices and Integration: what's next with Istio service mesh
PDF
Evolution of integration and microservices patterns with service mesh
PDF
Role of Integration and Service Mesh in Cloud Native Architecture KubeCon 2108
PPTX
Atlanta Microservices Day: Istio Service Mesh
PPTX
A microservices journey - Round 2
PPTX
Microservices Journey Summer 2017
PPTX
An evolution of application networking: service mesh
PPTX
Micro xchg 2018 - What is a Service Mesh?
PDF
Beyond DevOps: How Netflix Bridges the Gap?
PDF
Dublin Microservice "Introduction to Service Meshes"
PPTX
QConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptx
PDF
From Monoliths to Services: Paying Your Technical Debt
PPTX
Kubernetes And Istio and Azure AKS DevOps
PDF
Unconference Round Table Notes
PPTX
Come for the traffic management, stay for the security
PDF
Monoliths, Myths, and Microservices - CfgMgmtCamp
PPTX
Envoy @ Lyft: developer productivity (kubecon 2.0)
PPTX
CloudNativeLondon 2017: "What is a Service Mesh, and Do I Need One when Devel...
PPTX
Concurrency at Scale: Evolution to Micro-Services
The Hardest Part of Microservices: Calling Your Services
Microservices and Integration: what's next with Istio service mesh
Evolution of integration and microservices patterns with service mesh
Role of Integration and Service Mesh in Cloud Native Architecture KubeCon 2108
Atlanta Microservices Day: Istio Service Mesh
A microservices journey - Round 2
Microservices Journey Summer 2017
An evolution of application networking: service mesh
Micro xchg 2018 - What is a Service Mesh?
Beyond DevOps: How Netflix Bridges the Gap?
Dublin Microservice "Introduction to Service Meshes"
QConSF-MicroServices-IPC-Netflix-Sudhir-2014.pptx
From Monoliths to Services: Paying Your Technical Debt
Kubernetes And Istio and Azure AKS DevOps
Unconference Round Table Notes
Come for the traffic management, stay for the security
Monoliths, Myths, and Microservices - CfgMgmtCamp
Envoy @ Lyft: developer productivity (kubecon 2.0)
CloudNativeLondon 2017: "What is a Service Mesh, and Do I Need One when Devel...
Concurrency at Scale: Evolution to Micro-Services
Ad

More from Christian Posta (11)

PDF
What Istio Got Wrong: Learnings from the last seven years of service mesh
PDF
Move Auth, Policy, and Resilience to the Platform
PDF
Comparing Sidecar-less Service Mesh from Cilium and Istio
PDF
Understanding Wireguard, TLS and Workload Identity
PDF
Compliance and Zero Trust Ambient Mesh
PDF
Cilium + Istio with Gloo Mesh
PPTX
Deep Dive: Building external auth plugins for Gloo Enterprise
PPTX
Intro to Knative
PDF
An eventful tour from enterprise integration to serverless and functions
PDF
Lowering the risk of monolith to microservices
PDF
Istio: solving challenges of hybrid cloud
What Istio Got Wrong: Learnings from the last seven years of service mesh
Move Auth, Policy, and Resilience to the Platform
Comparing Sidecar-less Service Mesh from Cilium and Istio
Understanding Wireguard, TLS and Workload Identity
Compliance and Zero Trust Ambient Mesh
Cilium + Istio with Gloo Mesh
Deep Dive: Building external auth plugins for Gloo Enterprise
Intro to Knative
An eventful tour from enterprise integration to serverless and functions
Lowering the risk of monolith to microservices
Istio: solving challenges of hybrid cloud

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
System and Network Administraation Chapter 3
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Introduction to Artificial Intelligence
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
medical staffing services at VALiNTRY
PPT
Introduction Database Management System for Course Database
PPTX
Online Work Permit System for Fast Permit Processing
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
top salesforce developer skills in 2025.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
How to Migrate SBCGlobal Email to Yahoo Easily
ISO 45001 Occupational Health and Safety Management System
System and Network Administraation Chapter 3
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
Introduction to Artificial Intelligence
Odoo Companies in India – Driving Business Transformation.pdf
medical staffing services at VALiNTRY
Introduction Database Management System for Course Database
Online Work Permit System for Fast Permit Processing
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
top salesforce developer skills in 2025.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Upgrade and Innovation Strategies for SAP ERP Customers
ManageIQ - Sprint 268 Review - Slide Deck
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...

API World: The service-mesh landscape

Editor's Notes

  • #2: Service-mesh technology promises to deliver a lot of value to a cloud-native application, but it doesn't come without some hype. In this talk, we'll look at what is a "service mesh", how it compares to similar technology (Netflix OSS, API Management, ESBs, etc) and what options for service mesh exist today.
  • #4: How many people are embarking on projects to drive innovation in their organizations? How many people think those projects will succeed? How many people can predict the future? How many people believe their organization’s executives can predict the future?
  • #7: …… new challenge….. Let’s come back to that…..
  • #8: …… new challenge….. Let’s come back to that…..
  • #17: Does microservices help us do this?
  • #19: …… new challenge….. Let’s come back to that…..
  • #20: One large database! We should focus on how we design our data models so that they can be sharded and distributed…. Focus on transactions, etc not 2PC
  • #21: One large database! We should focus on how we design our data models so that they can be sharded and distributed…. Focus on transactions, etc not 2PC
  • #22: One large database! We should focus on how we design our data models so that they can be sharded and distributed…. Focus on transactions, etc not 2PC
  • #23: One large database! We should focus on how we design our data models so that they can be sharded and distributed…. Focus on transactions, etc not 2PC
  • #25: This concept of defining language, developing models to describe a domain, implementing those models, enforcing assertions, etc all happen within a certain context, and that context is vitally important in software. In common language, we are smart enough to resolve these types of language conflicts within a sentence because of its context. The computer doesn’t have this context. We have to make it explicit. And any context needs to have explicit boundaries. This model needs to be “useful” ie, it should be able to be implemented. Try to establish a model that’s both useful for discussion with the domain experts and is implementable. There are infinite ways to model/think about something. Balance both masters with the model you choose. Large complex domains may need multiple models. And really the only way to understand a language and model is within a certain context. That context should have boundaries so it doesn’t bleed or force others to bleed definitions and semantics. Bounded context: within this space, this is the context of the language. This is what it means and it’s not ambiguous. Central thing about a model is the language you create to express the prblem and solution very crisply. Need clear language and need boundaries. Anti corruption layers are translations between the different models that may exist in multiple bounded contexts. They keep an internal model consistent and pure without bleeding across the boundaries. Bounded contexts tend to be “self contained systems” themselves with a complete vertical stack of the software including UI, business logic, data models, and database. They tend to not share databases across multiple models.
  • #26: This concept of defining language, developing models to describe a domain, implementing those models, enforcing assertions, etc all happen within a certain context, and that context is vitally important in software. In common language, we are smart enough to resolve these types of language conflicts within a sentence because of its context. The computer doesn’t have this context. We have to make it explicit. And any context needs to have explicit boundaries. This model needs to be “useful” ie, it should be able to be implemented. Try to establish a model that’s both useful for discussion with the domain experts and is implementable. There are infinite ways to model/think about something. Balance both masters with the model you choose. Large complex domains may need multiple models. And really the only way to understand a language and model is within a certain context. That context should have boundaries so it doesn’t bleed or force others to bleed definitions and semantics. Bounded context: within this space, this is the context of the language. This is what it means and it’s not ambiguous. Central thing about a model is the language you create to express the prblem and solution very crisply. Need clear language and need boundaries. Anti corruption layers are translations between the different models that may exist in multiple bounded contexts. They keep an internal model consistent and pure without bleeding across the boundaries. Bounded contexts tend to be “self contained systems” themselves with a complete vertical stack of the software including UI, business logic, data models, and database. They tend to not share databases across multiple models.
  • #27: This concept of defining language, developing models to describe a domain, implementing those models, enforcing assertions, etc all happen within a certain context, and that context is vitally important in software. In common language, we are smart enough to resolve these types of language conflicts within a sentence because of its context. The computer doesn’t have this context. We have to make it explicit. And any context needs to have explicit boundaries. This model needs to be “useful” ie, it should be able to be implemented. Try to establish a model that’s both useful for discussion with the domain experts and is implementable. There are infinite ways to model/think about something. Balance both masters with the model you choose. Large complex domains may need multiple models. And really the only way to understand a language and model is within a certain context. That context should have boundaries so it doesn’t bleed or force others to bleed definitions and semantics. Bounded context: within this space, this is the context of the language. This is what it means and it’s not ambiguous. Central thing about a model is the language you create to express the prblem and solution very crisply. Need clear language and need boundaries. Anti corruption layers are translations between the different models that may exist in multiple bounded contexts. They keep an internal model consistent and pure without bleeding across the boundaries. Bounded contexts tend to be “self contained systems” themselves with a complete vertical stack of the software including UI, business logic, data models, and database. They tend to not share databases across multiple models.
  • #28: This concept of defining language, developing models to describe a domain, implementing those models, enforcing assertions, etc all happen within a certain context, and that context is vitally important in software. In common language, we are smart enough to resolve these types of language conflicts within a sentence because of its context. The computer doesn’t have this context. We have to make it explicit. And any context needs to have explicit boundaries. This model needs to be “useful” ie, it should be able to be implemented. Try to establish a model that’s both useful for discussion with the domain experts and is implementable. There are infinite ways to model/think about something. Balance both masters with the model you choose. Large complex domains may need multiple models. And really the only way to understand a language and model is within a certain context. That context should have boundaries so it doesn’t bleed or force others to bleed definitions and semantics. Bounded context: within this space, this is the context of the language. This is what it means and it’s not ambiguous. Central thing about a model is the language you create to express the prblem and solution very crisply. Need clear language and need boundaries. Anti corruption layers are translations between the different models that may exist in multiple bounded contexts. They keep an internal model consistent and pure without bleeding across the boundaries. Bounded contexts tend to be “self contained systems” themselves with a complete vertical stack of the software including UI, business logic, data models, and database. They tend to not share databases across multiple models.
  • #30: This concept of defining language, developing models to describe a domain, implementing those models, enforcing assertions, etc all happen within a certain context, and that context is vitally important in software. In common language, we are smart enough to resolve these types of language conflicts within a sentence because of its context. The computer doesn’t have this context. We have to make it explicit. And any context needs to have explicit boundaries. This model needs to be “useful” ie, it should be able to be implemented. Try to establish a model that’s both useful for discussion with the domain experts and is implementable. There are infinite ways to model/think about something. Balance both masters with the model you choose. Large complex domains may need multiple models. And really the only way to understand a language and model is within a certain context. That context should have boundaries so it doesn’t bleed or force others to bleed definitions and semantics. Bounded context: within this space, this is the context of the language. This is what it means and it’s not ambiguous. Central thing about a model is the language you create to express the prblem and solution very crisply. Need clear language and need boundaries. Anti corruption layers are translations between the different models that may exist in multiple bounded contexts. They keep an internal model consistent and pure without bleeding across the boundaries. Bounded contexts tend to be “self contained systems” themselves with a complete vertical stack of the software including UI, business logic, data models, and database. They tend to not share databases across multiple models.
  • #31: This concept of defining language, developing models to describe a domain, implementing those models, enforcing assertions, etc all happen within a certain context, and that context is vitally important in software. In common language, we are smart enough to resolve these types of language conflicts within a sentence because of its context. The computer doesn’t have this context. We have to make it explicit. And any context needs to have explicit boundaries. This model needs to be “useful” ie, it should be able to be implemented. Try to establish a model that’s both useful for discussion with the domain experts and is implementable. There are infinite ways to model/think about something. Balance both masters with the model you choose. Large complex domains may need multiple models. And really the only way to understand a language and model is within a certain context. That context should have boundaries so it doesn’t bleed or force others to bleed definitions and semantics. Bounded context: within this space, this is the context of the language. This is what it means and it’s not ambiguous. Central thing about a model is the language you create to express the prblem and solution very crisply. Need clear language and need boundaries. Anti corruption layers are translations between the different models that may exist in multiple bounded contexts. They keep an internal model consistent and pure without bleeding across the boundaries. Bounded contexts tend to be “self contained systems” themselves with a complete vertical stack of the software including UI, business logic, data models, and database. They tend to not share databases across multiple models.
  • #32: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #34: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #35: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #37: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #39: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #46: This concept of defining language, developing models to describe a domain, implementing those models, enforcing assertions, etc all happen within a certain context, and that context is vitally important in software. In common language, we are smart enough to resolve these types of language conflicts within a sentence because of its context. The computer doesn’t have this context. We have to make it explicit. And any context needs to have explicit boundaries. This model needs to be “useful” ie, it should be able to be implemented. Try to establish a model that’s both useful for discussion with the domain experts and is implementable. There are infinite ways to model/think about something. Balance both masters with the model you choose. Large complex domains may need multiple models. And really the only way to understand a language and model is within a certain context. That context should have boundaries so it doesn’t bleed or force others to bleed definitions and semantics. Bounded context: within this space, this is the context of the language. This is what it means and it’s not ambiguous. Central thing about a model is the language you create to express the prblem and solution very crisply. Need clear language and need boundaries. Anti corruption layers are translations between the different models that may exist in multiple bounded contexts. They keep an internal model consistent and pure without bleeding across the boundaries. Bounded contexts tend to be “self contained systems” themselves with a complete vertical stack of the software including UI, business logic, data models, and database. They tend to not share databases across multiple models.
  • #47: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #48: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #50: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #51: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #52: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #53: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #54: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.
  • #56: Get back to first principles. Focus on principles, patterns, methodologies. Tools will help, but you cannot start with tools.