CodeOpinion
CodeOpinion
  • Видео 310
  • Просмотров 5 262 134
You're not as loosely coupled as you think!
When you hear tight coupling or being loosely coupled, what does that even mean? There are many aspects to coupling that you need to think about. Temporal, Data Schema, Location, Technology. Removing one aspect usually involves having to deal with a whole new set of problems.
🔗 EventStoreDB
eventsto.re/codeopinion
🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw
💥 Join this channel to get access to a private Discord Server and any source code in my videos.
🔥 Join via Patreon
www.patreon.com/codeopinion
✔️ Join via RUclips
ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplwjoin
📝 Blog: codeopinion.com
👋 Twitter: codeopinion
✨ LinkedIn: www.linkedin.com/in/dcomartin/
📧 Weekly Updates: mai...
Просмотров: 5 059

Видео

My First look at .NET Aspire. What's with the Hype?
Просмотров 11 тыс.День назад
Follow along as I take a look at .NET Aspire. I've been hearing a lot about it, but is it worth the hype? Good question! I haven't used it or really read much about it in detail so here's my first look and first impressions. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join this channel to get access to a private Discord Server and any sourc...
Your customers don't care about JS
Просмотров 10 тыс.14 дней назад
Your customers do not care about the technology behind your app. What programming language, frameworks, libraries, or whatever tooling you're using, they don't care. They care about it providing them value and that it has certain characteristics. They want it to work. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join this channel to get acce...
One concept plaguing software architecture and design (Part 3)
Просмотров 6 тыс.21 день назад
Is all the chaos with microservices and "modular" monoliths really because there's a lack of distinction between logical and physical boundaries. I think so. The industry and software architecture as a whole would be better served making this distinction rather than trying to force a one-to-one or abstracting network calls and pretending the coupling doesn't exist. 🔔 Subscribe: ruclips.net/chan...
HTTP APIs don't magically remove Coupling (Part 2)
Просмотров 4,2 тыс.21 день назад
What used to be a method call in-process turned into an HTTP call over the network. You have the same amount of coupling. Possibly worse off because you've now introduced the network. All for the need to deploy independently. Did you really have that need? 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join this channel to get access to a private Discord Server and any source code ...
Did we learn anything from Microservices? (Part 1)
Просмотров 7 тыс.21 день назад
The industry moved from monoliths to microservices. Now we're in full swing back to a modular monolith. Has the industry learned anything along the way? Or is it just a bunch of over correction because we're not focusing on the actual problems. I'm joined by William Brander from Particular Software (makers of NServiceBus) to talk about all of this and more! 🔔 Subscribe: ruclips.net/channel/UC3R...
HTMX: What's Old is New Again
Просмотров 14 тыс.Месяц назад
What's old is new again, kind of. HTMX fits into that motto for me and it's getting pretty popular, but at the same time It gets a lot of pushback. I'm going to take a step back and explain how we got to where we are in current web dev, which will explain what HTMX is. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join this channel to get acc...
API Error Messages for a GOOD Developer Experience
Просмотров 8 тыс.Месяц назад
Debugging and troubleshooting are a big part of a developer's day-to-day. Because of this, when designing your APIs, provide good API error messages as well as guide developers down a path of success and makes it easier for them to understand issues when they need to troubleshoot. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join this channe...
Web-Queue-Worker Architecture Style for Scaling
Просмотров 10 тыс.Месяц назад
Web-Queue-Worker is an excellent architecture pattern you can add to your toolbox. It's just a pattern and can work with a monolith, modular monolith, microservices, or whatever. It provides many benefits for scaling by moving work into the background and if you have long-running jobs, workflows, or even recurring batch jobs. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/chann...
Keep your project structure simple!
Просмотров 16 тыс.2 месяца назад
What should your project structure look like? How should you structure and organize your HTTP APIs? Here's one way by Jono Williams and my thoughts and insights about some misconceptions about Domain Driven Design. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join this channel to get access to a private Discord Server and any source code in ...
Debunking Kafka Top 5 Use Cases
Просмотров 15 тыс.2 месяца назад
Infographics are easy and quick to look at and they are posted everywhere. But are they actually correct? Not really. Here's an example of the "Top 5 use cases for Kafka" that aren't actually valid use-cases at all. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join this channel to get access to a private Discord Server and any source code in...
Event Sourcing Core Concepts
Просмотров 7 тыс.2 месяца назад
What is event sourcing? Often, many terms are thrown around that can be pretty confusing. I will explain the core concepts and the terminology used around Event Sourcing so you can better understand what it is and what some of the benefits might be. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join this channel to get access to a private Dis...
My WORST Mistakes as a Software Developer
Просмотров 9 тыс.2 месяца назад
Drop a database by accident? Write some horrible bug that caused all sorts of issues? Sure but that's not the one's that had the most significant impact on the code I write. The worst mistakes as a software developer are the ones that blinded my thought about how to write and design software. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join...
Feature Flags are more than just Toggles
Просмотров 10 тыс.3 месяца назад
Feature Flags are just conditional statements but can be much more powerful. Use them so you can integrate features before they are ready to be used in production. But they have a lot more utility than just being simple toggles. Here are different ways of thinking and using feature flags. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vunFAfrfxiJhPEplw 💥 Join thi...
"Serverless sucks!"... or does it?
Просмотров 7 тыс.3 месяца назад
Serverless sucks... or does it? There is a neverending supply of people saying that serverless is trash and has no value. The issue often with these statements is they need to provide more context. As always, context is king, and understanding the use case to make decisions on when serverless might be appropriate. 🔗 EventStoreDB eventsto.re/codeopinion 🔔 Subscribe: ruclips.net/channel/UC3RKA4vu...
Stop leaking and implying logic in your Frontend
Просмотров 9 тыс.3 месяца назад
Stop leaking and implying logic in your Frontend
What Kind Of Software Architecture Is This? Monolith or Microservices?
Просмотров 7 тыс.3 месяца назад
What Kind Of Software Architecture Is This? Monolith or Microservices?
Battle Of The Software Architectures: Which One Reigns Supreme?
Просмотров 15 тыс.4 месяца назад
Battle Of The Software Architectures: Which One Reigns Supreme?
Avoiding long running HTTP API requests.
Просмотров 14 тыс.4 месяца назад
Avoiding long running HTTP API requests.
Tips for Production Ready Database (Query) Design
Просмотров 6 тыс.4 месяца назад
Tips for Production Ready Database (Query) Design
Enums aren't evil. Conditionals everywhere are
Просмотров 17 тыс.5 месяцев назад
Enums aren't evil. Conditionals everywhere are
Goodbye long procedural code! Fix it with workflows
Просмотров 22 тыс.5 месяцев назад
Goodbye long procedural code! Fix it with workflows
Beware! Anti-patterns in Event-Driven Architecture
Просмотров 13 тыс.5 месяцев назад
Beware! Anti-patterns in Event-Driven Architecture
The Bulkhead Pattern: How To Make Your System Fault-tolerant
Просмотров 10 тыс.5 месяцев назад
The Bulkhead Pattern: How To Make Your System Fault-tolerant
Locking In On Concurrency Control
Просмотров 8 тыс.6 месяцев назад
Locking In On Concurrency Control
Is AI coming for your Developer Job?
Просмотров 6 тыс.6 месяцев назад
Is AI coming for your Developer Job?
How to (and how not to) design REST APIs
Просмотров 48 тыс.6 месяцев назад
How to (and how not to) design REST APIs
Vertical Slice Architecture Myths You Need To Know!
Просмотров 12 тыс.6 месяцев назад
Vertical Slice Architecture Myths You Need To Know!
Google's Service Weaver is Bad idea
Просмотров 8 тыс.7 месяцев назад
Google's Service Weaver is Bad idea
If your service doesn't own data, it's NOT a service.
Просмотров 13 тыс.7 месяцев назад
If your service doesn't own data, it's NOT a service.

Комментарии

  • @Aalii6
    @Aalii6 13 часов назад

    very helpful, thank you! 👍👍

  • @guai9632
    @guai9632 День назад

    my rule of thumb is you never lose precision/metainfo. by storing utc you are doing exactly that

  • @guai9632
    @guai9632 День назад

    there is a pgq extension to pg.

  • @zonegamma8197
    @zonegamma8197 2 дня назад

    Good video thanks

  • @sanjeevsjk
    @sanjeevsjk 2 дня назад

    why don't you use aggregator pattern for the same? You pull data from each service individually and using composite microservice, club the data how the user wants and sends it back. Since it is business data, API gateway won't be of right implementation than aggregator pattern using composite microservice

  • @fennecbesixdouze1794
    @fennecbesixdouze1794 3 дня назад

    A massive problem with what they're advertising: An HTML partial is not the same thing as HTML. I can't just go to /contact/1/edit and expect the website to render with the edit form. That GET request is just returning a partial. The glory of the old internet was if I had something like a Ruby on Rails scaffold, when I go to /contact/1/edit I get the entire hypermedia resource with all the hypermedia controls. I could bookmark that edit resource and come back to it and I'd get the same edit form. Of course I could do something more clever on the server to understand whether the request is over HTMX or a browser navigation, returning a partial in the former case and a full page in the latter. But I'm not getting rid of any of the added complexity of trying to do in-line edit, and I'm certainly not rescuing the simplicity of the REST model with HATEOS, statelessness, and the simplicity of collapsing resource and representation. Trying to get fancy stuff like in-line editing still means moving state and behavior to the client, and it still means giving up the simplicity and robustness of pursuing a REST design where we can represent something like an edit form as its own hypermedia resource rather than as a stateful on-client interaction.

  • @JohnDoe-bu3qp
    @JohnDoe-bu3qp 4 дня назад

    I get what you're saying, but if accessing a rest API synchronously with fixed transmission format and url is "tight", what is a mega monolith, a shared database or a big ball of mud? To me those look like "loose" and "looser". Even more so if the url is a runtime parameter that is easily changed.

  • @tanglesites
    @tanglesites 6 дней назад

    Good video. I think coupling and cohesion are human problems. They only matter because programs require people to maintain them. And people need order and patterns to process large amounts of data. Remove the people aspect and coupling and cohesion go out the window. Because my machine could care less what what interface exists between two classes. If anything good code is slower than any other code my machine can execute. I know, this is not some revelation, i am just saying, its not a machine problem, its an us problem.

  • @douglasmakey
    @douglasmakey 6 дней назад

    TLDR: The only way to achieve a decoupled system is to not have a system!

    • @CodeOpinion
      @CodeOpinion 6 дней назад

      Exactly!

    • @ChrisAthanas
      @ChrisAthanas 4 дня назад

      You still have to have a system, it’s just one layer removed: a meta-system

  • @riccarrasquilla379
    @riccarrasquilla379 6 дней назад

    thanks for the video

  • @user-ev9jg6ts6e
    @user-ev9jg6ts6e 6 дней назад

    Hi Derek. Nice video, appreciate it. Coupling and cohesion are the roots of all architectural matters.

    • @CodeOpinion
      @CodeOpinion 6 дней назад

      Boils down to that a lot of the time

  • @Nots88
    @Nots88 6 дней назад

    New Derek Coupling video!

  • @malekalhourani5930
    @malekalhourani5930 6 дней назад

    Isn't thinking about all these types of coupling is really overengineering? ok, for sync vs async call i get it, but i can't understand why i should care about other aspects.

    • @arielmoraes9427
      @arielmoraes9427 6 дней назад

      Not at all, things change, we sure can build MVPs or POCs without putting much effort on that, but your or others products will change, and that should be taken into account. So you should think what are the coupling points so when the time comes they can be modified without affecting your critical paths.

    • @malekalhourani5930
      @malekalhourani5930 6 дней назад

      ​@@arielmoraes9427 I agree, things gonna change, but let's think about the Location aspect, what's wrong with storing these info in the .env file? it changed? great just change the info you have in the .env, why should we make things complex?

    • @malekalhourani5930
      @malekalhourani5930 6 дней назад

      ​ @arielmoraes9427 I agree, things gonna change, but let's think about the location aspect, what's wrong with storing these info in the .env file of the project? why should i move these info a managed service? doesn't that make things complex for no actual reason?

    • @CodeOpinion
      @CodeOpinion 6 дней назад

      You're getting to the root of it. You're solution to that coupling is to store it in a single place (env file). Is that overengineering? No, because it's basic enough to you probably in your context that that would work. In a different context, the location of something might not be trivial on how that's defined/stored.

  • @marcom.
    @marcom. 6 дней назад

    I find it often helps to look at our real lifes. We have many types of useful abstractions and temporal decoupling there. We tend to work asynchronously, because it makes a lot of sense. Just think of what happens when you go to a restaurant, how the waiters and cooks do their work for many guests. There are such things as message queues (order list, preperation queue, delivery queue). You don't know which person in the kitchen actually makes your meal, nor do the person in the kitchen know who will eat it. You can do other things while waiting. There are many other good examples from real life which can help to model software systems.

    • @CodeOpinion
      @CodeOpinion 6 дней назад

      Exactly. I did a video on this that async workflows are everywhere including a restaurant. ruclips.net/video/87fOMcRPDts/видео.html

  • @VasilManikatov
    @VasilManikatov 6 дней назад

    A should not know/care that B will process it. i was following for about a month both you and Milan, and after a while it all becomes confusing as in some videos you are contradicting yourself (its very informative nevertheless) . but that constant content churn-out in order to monetize is backfiring... it now turns into technology attrition and disinteresting

    • @ChaseFreedomMusician
      @ChaseFreedomMusician 6 дней назад

      And A doesn't care, but B HAS to care, it doesn't have to care that A specifically give it what it needs, but it has a dependency on ingested data. The point is, there is no silver bullet, there are tradeoffs that have to be managed. I.E. reliable software development is not easy. Don't let anyone sell you otherwise. But, most products don't need to be ultra reliable, so again, there are trade-offs.

    • @CodeOpinion
      @CodeOpinion 6 дней назад

      For commands, you absolutely know/care that B will process it. If it's a command, the intent is you want something to occur. As for an event, A shouldn't know or care, agree. But B absolutely cares if A stops publishing that event. Curious to know when I'm contradicting myself? I post one video a week. I don't do this full-time. There's no content churn-out, just consistency of posting things I think are worth explaining based on my own experience.

    • @AkosLukacs42
      @AkosLukacs42 6 дней назад

      A doesn't care, but there is a reason why A and B exists. So at that level someone does care about that A and B works, and B does something when something happens in A...

  • @zfold4702
    @zfold4702 6 дней назад

    Everything depends on one thing or other. That is not the definition of coupling. Coupling implies tight coupling that disallows or making it hard to change what you depend on. Its dependency not coupling. Coupling was meant to refer the mechanism of dependency and not the dependency itself. The moment there is a agreed upon contract, there is a dependency no matter even if you build redundancy into your dependencies.

    • @CodeOpinion
      @CodeOpinion 6 дней назад

      That is Gregor's definition of coupling. Per ISO/IEC/IEEE 24765:2017 Systems and software engineering - "manner and degree of interdependence between software modules" www.iso.org/standard/71952.html

  • @alessandrovangeli8395
    @alessandrovangeli8395 6 дней назад

    i didnt get if there is any solution to this coupling

    • @KingOfKoopahs
      @KingOfKoopahs 6 дней назад

      Yeah, I think the main point is that loose coupling isn't inherently better for everything and there's always some level of coupling between consumer/producers. There are trade-offs between Message Queues vs HTTP calls for example, and we just need be aware of the characteristics of these types of patterns.

    • @alessandrovangeli8395
      @alessandrovangeli8395 6 дней назад

      Ok. So the video Is intended to be people aware of

    • @CodeOpinion
      @CodeOpinion 6 дней назад

      Yes, it's about awareness. Too often we think things are loosely coupled incorrectly or that it isn't coming at a a price/trade-offs.

  • @adambickford8720
    @adambickford8720 6 дней назад

    More levels of indirection doesn't reduce coupling; hatoes just moves it from a load bearing url to a load bearing arbitrary string.

  • @FlaviusAspra
    @FlaviusAspra 8 дней назад

    It's a distributed monolith, since you never mentioned versioning of events in the broker.

  • @mehdi-vl5nn
    @mehdi-vl5nn 8 дней назад

    As a new programmer, I have a question: Is this task-based UI you mentioned the same as DDD? I'm actually looking for more resources on this.

  • @penguinzwarrior4679
    @penguinzwarrior4679 8 дней назад

    I cannot follow what you are saying half of the time. Please speak in a less convoluted manner. You often start making a point, then you stop mid way, the you go back to another point and then return to your original point. You are chaining multiple unfinished statements and it becomes confusing. I had to rewind multiple times because a few things didn't make sense. You literally said nothing from 01:32 to 01:53. That was a word salad that didn't feed anyone. Another example, when you were explaining about the timestamps: "But I am gonna add a little bit to this, I am gonna have a link at the very end of this video to a video I've done about storing date-time, specifically not just UTC. Because date-times in the future not so much." I might be missing something, but "no so much" WHAT?

    • @CodeOpinion
      @CodeOpinion 8 дней назад

      This video specifically or others have the same issue for you?

    • @penguinzwarrior4679
      @penguinzwarrior4679 8 дней назад

      @@CodeOpinion This is your first video I stumbled on so I don't have other observations. I didn't mean to make it negative, I was just frustrated that I couldn't understand some of the points you were making. It's possible that my confusion stems from lack of experience, maybe other viewers didn't have this issue but for me it was difficult to follow. Maybe I would have been able to connect the dots if I had more experience but I think everyone would appreciate it if you spoke in a more structured and straightforward way. For example, you mentioned hypermedia a few times. I don't understand how it relates to the topic. I suppose you don't mean hypermedia as in audio and video but something else.

  • @xelaksal6690
    @xelaksal6690 8 дней назад

    Great example and thanks for placing it on GItHub for free!

  • @7th_CAV_Trooper
    @7th_CAV_Trooper 9 дней назад

    Event sourcing has been around for 5,000 years. 🙂 Love the breakdown in this presentation.

  • @Aalii6
    @Aalii6 10 дней назад

    👍👍

  • @Aalii6
    @Aalii6 10 дней назад

    👍👍

  • @ChaseFreedomMusician
    @ChaseFreedomMusician 12 дней назад

    "HTTP APIs don't magically remove Coupling" Do queues next!

    • @CodeOpinion
      @CodeOpinion 12 дней назад

      I'm about to, as well as events! Thanks for the suggestion.

  • @caitlinmclaren2695
    @caitlinmclaren2695 12 дней назад

    Cache shouldn't be used to fix unavailability. Cache is small and expensive and it's used to store only the info that is more likely will be needed in the future to improve the performance. I recommend reading "Designs Data-Intensive Applications" by Martin Kleppmann. Please reply to this comment

  • @LuisM_Santana
    @LuisM_Santana 12 дней назад

    Great take, really enjoyed this video

  • @CraigPerry
    @CraigPerry 12 дней назад

    More typesafe config than dockerfiles seems attractive

  • @samuelnettey
    @samuelnettey 12 дней назад

    Isn't this supposed to beef up your local development? I think you are missing the point with Aspire.

    • @CodeOpinion
      @CodeOpinion 7 дней назад

      I think local is where I see the value. That's what I mentioned in the video. It's docker compose in code. For some that might be valuable. Where I'm missing the value is deployment.

    • @samuelnettey
      @samuelnettey 6 дней назад

      @@CodeOpinion okay I get you.

  • @CraigLivingston
    @CraigLivingston 12 дней назад

    First, thank you for these videos. I seem them more as a discussion, kind of a "retrospective" in a way, rather than a discussion of "ok, based on what we've learned, let's do X". Part of the difficulty for me personally is...how do we measure the effectiveness of one approach, vs the other? And get visibility. For example: Implementing a system using a more monolithic approach, vs a microservice approach. It's difficult to see the "real" costs of everything from start to end, and to see the true measurement of latency, performance, maintainability, all the side tasks related to devops, etc. I feel like with topics like this, the industry does a "let's try this for 10 years...ok, now lets try something else. Or something we did before. Or a hybrid.". It all just seems like guesswork and experimentation, there's no way to get a clear answer when it comes to effectiveness, or we wouldn't be in this situation.

  • @dustedcodes
    @dustedcodes 13 дней назад

    What's with the Hype? There is no hype. It's literally just Fowler tweeting about his newest framework pet project because he wants to make it a thing.

  • @cas818028
    @cas818028 13 дней назад

    Welcome to IaaS

  • @rezcan
    @rezcan 13 дней назад

    this is for local dev only...no place in prod. This (with the help from .Net 8) removes the need to use docker locally.

  • @paarma1752
    @paarma1752 13 дней назад

    To me Aspire seems to be one of those things that can make previously straightforward things super trivial and previously complicated things next to impossible. At least for the time being. If you're not familiar with microservices and you're starting a new microservice based project, it can save you a lot of time. But then again you probably shouldn't start a completely new project using microservices if you don't have enough experience with them. Or even if you do. Imho you should resort to a distributed architecture only once it's absolutely necessary and there's no reasonable way to avoid it.

  • @collinbarrett
    @collinbarrett 13 дней назад

    I've been playing with it for a couple of weeks since GA. The local dev experience is nice so far, though I haven't tried it on a large microservices implementation. I think there is value add with the C# layer of abstraction on top of docker. I don't care what ports are what, I just want to say which services can talk to what. That's a problem it seems to solve. ServiceDefaults is really nice to have. It seems like a solution that could be shipped outside of Aspire, maybe, but it's nice to get some recommended defaults for those cross-cutting concerns. The deployment story is not there yet. It works if you want to use the exact default resource types, but customizing things gets a bit gnarly. infra synth to bicep or using unstable APIs in C#.

    • @MitchDenny
      @MitchDenny 13 дней назад

      We are working on locking down the PublishAsAzure...(....) APIs that enable fine tuning of resources. Feedback heard it is something that is on our priority list. We are working with the Azure SDK team on this.

  • @FilipCordas
    @FilipCordas 13 дней назад

    I really liked the Orleans example but the big problem I see is everything being one big solution. First I don't like gigantic solutions hard to use and navigate. Second multiple teams setup where I don't run everything in Debug because it's some others team responsibility. I am not sure how this will scale.

  • @georgehelyar
    @georgehelyar 13 дней назад

    It's just pointless right now. I was hyped for dapr and that turned out pretty bad when i tried to actually use it but aspire is not even on the level of dapr. It reminds me more of service fabric, which was truly awful.

  • @buddy.abc123
    @buddy.abc123 13 дней назад

    I'll continue to work as a C# Dev for work, but C# is too much for side projects which is why I've moved on to Go

  • @davidfowl
    @davidfowl 13 дней назад

    Great honest review! Local development is definitely where we add the most value! We’ve got lots of feedback as to where to spend time improving (multi repo etc etc). Deployment will be a longer journey but we will get there! One of the big advantages that people are beginning to realize is the extensibility. We’re seeing people build some very cool things by extending the model.

    • @CodeOpinion
      @CodeOpinion 13 дней назад

      Ya, for a new project for local dev, I see the value. Although I'm still trying to wrap my mind around not using it for production and how you have service discovery for local, but then for production end up having to use whatever that may be depending where it's hosted. There's a mismatch there I'm trying to find a solution to and can't think of. How would that work?

  • @adambickford8720
    @adambickford8720 13 дней назад

    It looks similar to spring cloud. Your app code depends on "cacheService" and the runtime figures it out; locally that means spinning up a docker redis, in dev it means no cache and in prod it means a managed redis.

  • @marna_li
    @marna_li 13 дней назад

    I recently converted my solution to Aspire - 20+ projects. I'm glad that I had my own service defaults. But it was so tedious to do. I had been using Tye before, and I liked it, but switched to Docker Compose when that experiment ended. I kind of miss the YAML now.

  • @Rick104547
    @Rick104547 13 дней назад

    The standalone aspire dashboard is the easiest way to see Opentelemetry data locally. Using it daily already. Not sure about the rest of aspire. Feels like there's potential here but also feels like this might turn into yet another excuse to do microservices in the wrong context.

    • @DanielGraham655t
      @DanielGraham655t 13 дней назад

      I’ve been using the jaeger all in one container locally for at least 3 years. No need for aspire.

    • @Rick104547
      @Rick104547 13 дней назад

      ​@@DanielGraham655t didn't try Jaeger yet but the aspire dashboard is also just a docker container so super easy to setup in just minutes.

  • @BiaoTV
    @BiaoTV 13 дней назад

    I don't see a lot of value on aspire at this moment.

  • @bruce657
    @bruce657 13 дней назад

    Personally I find the standalone Aspire dashboard to be more interesting. I see it as being very useful with local dev / docker-compose scenarios so that I can get visibility into my OTEL data during local development but then replace it with an enterprise grade APM solution for staging and production environments.

  • @user-qb8ii5pe4d
    @user-qb8ii5pe4d 13 дней назад

    I've been playing around with it and I think it has a lot of promise but it falls just short right now. Specifically when it comes to testing, I'd like to use the same AppHost configuration to spin up instances of my dependencies for integration tests and to configure test services like you can with WAF. It feels very all-or-nothing right now but hopefully, it'll be more flexible in the future. I've been using a combination of docker/compose/makefile to simplify local setup and I don't think I can walk away from it yet. However I might use both Aspire and my current tooling together in my next greenfield project to get a better sense.

    • @JeffryGonzalezHt
      @JeffryGonzalezHt 13 дней назад

      They are adding in WAF testing stuff - there's a big github comment thread and a sample what's to come. I agree - without that, can't use it.

  • @pokefreak2112
    @pokefreak2112 13 дней назад

    how I see it the "needing javascript" isn't about javascript being somehow superior, it's about javascript being the only client-side programming language on the web and webapps requiring client-side logic to have a good UX. As you pointed out the popup problem is solved by preloading, but how do you achieve that? It can only be done with javascript.

  • @AlexanderZeitler
    @AlexanderZeitler 13 дней назад

    This video is my first look at Aspire and I think I can ignore it for while (maybe forever)

  • @awright18
    @awright18 13 дней назад

    Still need to look at this more, my gut reactions to this were a concern about centralized configuration and not quite understanding how or if various teams working on parts of a system would or could use this. It feels like a solition in search of a real problem. Really feels like DevDiv is being asked to try hard to influence devs to use more azure instead of solving real problems. Apologies for the sinicism, I've just been doing this too long. Maybe it will be the next big thing and i'll see the light, as of now though I'm not convinced.

    • @PraiseYeezus
      @PraiseYeezus 13 дней назад

      Not all devs are in a situation where there needs to be cross-team consideration, and could benefit from the velocity a platform like this affords smaller start ups and projects.

    • @MiningForPies
      @MiningForPies 13 дней назад

      @@PraiseYeezus why the fuck would they need distributed microservices then 😂

    • @PraiseYeezus
      @PraiseYeezus 13 дней назад

      @@MiningForPies because they work on an ecommerce platform in a small team that need to scale services separately because of black friday coming up? Source: real life

    • @MitchDenny
      @MitchDenny 13 дней назад

      Hi @awright18 as @davidfowl indicated above, how we work across multi-repos is a work in progress (we took some initial steps in GA and we'll improve that over time). The workflow that works for you depends a lot more on your organizational structure. For example, lets say you have an organization where each service/cluster of services are managed by a seperate team, but there are well defined connections between them. Then you might have mutliple repos, each one with a AppHost that helps that service team build and debug the things that they are repsonsible for. Where those services have interdependencies then you can use things like builder.AddConnectionString(...) to reference those external dependencies (just depends on protocols etc). As teams mature they might find some benefits of having lightweight versions of services that their partner teams can use for debugging locally and so they have things like builder.AddPaymentGateway(...) that allows a partner team to have a payment gateway emulator that they just plug into their services for debugging purposes. Teams that are more tightly coupled might tackle it a different way. Our goal is to provide building blocks to help people work the way they want. Where we don't have the right shape blocks yet we see that as a potential set of features we can add.

    • @MiningForPies
      @MiningForPies 13 дней назад

      @@PraiseYeezus yeah ok lol. 😂 Cause that’s so common. There’s thousands of shitty little companies that go viral a couple of times a year and need to scale quick 🤣

  • @MiningForPies
    @MiningForPies 13 дней назад

    I’ve used it in anger. It’s decent enough, but it’s maintained by a knob (David Fowler is horrendously arrogant and unhelpful). It’s a solution to Microsoft’s problems (a bit like azure which is overpriced hosting). It’s nowhere near production ready. Perfect workflow is for developing with dependencies, avoiding docker compose for local is ideal. Most people won’t benefit though, as if you’re running real microservices it doesn’t work well across teams.

    • @Ry4nWTF
      @Ry4nWTF 13 дней назад

      "avoiding docker compose for local is ideal" why? genuinely curious, wanting to get into using containers for my current project

    • @MiningForPies
      @MiningForPies 13 дней назад

      @@Ry4nWTF visual studio support for docker compose is weird. I’ve never liked it. MS do their usual and make things work under the hood that often go wrong and are difficult to diagnose.

    • @davidfowl
      @davidfowl 13 дней назад

      Sorry I was unhelpful 😅

    • @georgehelyar
      @georgehelyar 13 дней назад

      ​​​​@@Ry4nWTF FWIW, using docker compose works well at my work. We have multi-repo and a central docker compose file. It's like 10 lines of yaml per service, most of which is just setting environment variables for config, not exactly difficult, and then you can just docker compose up. You can also just start a specific service and its dependencies. We use renovate to keep the versions of images up to date. As well as local dev, we also use this to run integration tests easily in pipelines. In prod we use k8s.