- Видео 310
- Просмотров 5 262 134
CodeOpinion
Канада
Добавлен 13 июл 2016
CodeOpinion is by Derek Comartin, a software developer with over two decades of professional software development experience.
He's written software for a variety of business domains such as distribution, transportation, manufacturing, and accounting.
Derek has a very active blog @ codeopinion.com, that focuses on Software Architecture & Design, Messaging, CQRS, Event Sourcing and HTTP APIs.
He's written software for a variety of business domains such as distribution, transportation, manufacturing, and accounting.
Derek has a very active blog @ codeopinion.com, that focuses on Software Architecture & Design, Messaging, CQRS, Event Sourcing and HTTP APIs.
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...
🔗 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
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.
very helpful, thank you! 👍👍
my rule of thumb is you never lose precision/metainfo. by storing utc you are doing exactly that
there is a pgq extension to pg.
Good video thanks
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
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.
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.
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.
TLDR: The only way to achieve a decoupled system is to not have a system!
Exactly!
You still have to have a system, it’s just one layer removed: a meta-system
thanks for the video
Hi Derek. Nice video, appreciate it. Coupling and cohesion are the roots of all architectural matters.
Boils down to that a lot of the time
New Derek Coupling video!
They never end!
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.
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.
@@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?
@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?
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.
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.
Exactly. I did a video on this that async workflows are everywhere including a restaurant. ruclips.net/video/87fOMcRPDts/видео.html
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
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.
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.
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...
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.
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
i didnt get if there is any solution to this coupling
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.
Ok. So the video Is intended to be people aware of
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.
More levels of indirection doesn't reduce coupling; hatoes just moves it from a load bearing url to a load bearing arbitrary string.
It's a distributed monolith, since you never mentioned versioning of events in the broker.
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.
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?
This video specifically or others have the same issue for you?
@@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.
Great example and thanks for placing it on GItHub for free!
Event sourcing has been around for 5,000 years. 🙂 Love the breakdown in this presentation.
👍👍
👍👍
"HTTP APIs don't magically remove Coupling" Do queues next!
I'm about to, as well as events! Thanks for the suggestion.
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
Great take, really enjoyed this video
More typesafe config than dockerfiles seems attractive
Isn't this supposed to beef up your local development? I think you are missing the point with Aspire.
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.
@@CodeOpinion okay I get you.
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.
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.
Hell yeah
Welcome to IaaS
this is for local dev only...no place in prod. This (with the help from .Net 8) removes the need to use docker locally.
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.
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#.
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.
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.
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.
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
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.
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?
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.
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.
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.
I’ve been using the jaeger all in one container locally for at least 3 years. No need for aspire.
@@DanielGraham655t didn't try Jaeger yet but the aspire dashboard is also just a docker container so super easy to setup in just minutes.
I don't see a lot of value on aspire at this moment.
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.
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.
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.
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.
This video is my first look at Aspire and I think I can ignore it for while (maybe forever)
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.
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.
@@PraiseYeezus why the fuck would they need distributed microservices then 😂
@@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
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.
@@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 🤣
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.
"avoiding docker compose for local is ideal" why? genuinely curious, wanting to get into using containers for my current project
@@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.
Sorry I was unhelpful 😅
@@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.