Vaughn Vernon (@VaughnVernon@mastodon.social) Profile Banner
Vaughn Vernon (@VaughnVernon@mastodon.social) Profile
Vaughn Vernon (@[email protected])

@VaughnVernon

25,217
Followers
177
Following
683
Media
20,273
Statuses

Software Ecologist, Architect, Modeler |  #DDDesign , Systems Transformation | 4x author, Addison-Wesley Signature Series | @kalele_io products @kalele_domo

Here and there.
Joined September 2009
Don't wanna be here? Send us removal request.
Pinned Tweet
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
I finally realized what's been on my mind for the past 15 months.
Tweet media one
24
49
537
@VaughnVernon
Vaughn Vernon (@[email protected])
10 months
Dependency injection has had strange effects on software developers. For example, not using an IoC container or DI at all, I use object constructors that require correct parameters: var proposal = new Proposal(client, expectations); The DI addicted onlookers informed me that
88
141
876
@VaughnVernon
Vaughn Vernon (@[email protected])
5 months
Event Sourcing and Message Streaming are NOT the same things. Kafka is NOT suitable for Event Sourcing. Kafka is suitable for Message Streaming. There are important reasons why these two different things require *different storage mechanics*. I'm going to simplify this by naming
18
121
580
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
"Microservices are very successful in solving the disadvantages of monolithic architecture" No. No, they are not.
37
88
531
@VaughnVernon
Vaughn Vernon (@[email protected])
11 months
Avoid collection-named behaviors where possible: // Meaning is vague void AddStudent(Student student) { ... } // Meaning is explicit void Enroll(Student student) { ... } #dddesign
22
71
480
@VaughnVernon
Vaughn Vernon (@[email protected])
4 years
My Vaughn Vernon Signature Series cover design is finalized. The series theme is based on organic systems and techniques. All cover images fit that. Here's the cover (comp, not final) of the book by @tjaskula and me. A cactus is prickly and beautiful, parts large and small. 1/4
Tweet media one
18
90
403
@VaughnVernon
Vaughn Vernon (@[email protected])
10 months
A common misunderstanding about technical debt is that it's incurred by releasing "bad code." That's incorrect. It's a metaphor for releasing a model that you know is wrong based on new knowledge. The team releases with debt in order to receive feedback earlier than if time were
11
73
298
@VaughnVernon
Vaughn Vernon (@[email protected])
6 years
The programming part is pretty easy compared to the thinking part.
12
108
292
@VaughnVernon
Vaughn Vernon (@[email protected])
4 months
The world would be a much better place if every programmer used the Tell-Don't-Ask principle. That means to do this: quote.extendExpirationBy(days); Not this: LocalDateTime dt = quote.getExpirationDateTime(); dt = dt.plusDays(daysToAdd); quote.setExpirationDateTime(dt);
15
57
259
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
I find it amusing that those who claim to be using DDD and teaching others how to use DDD aren't willing to look up the meaning of a word in a dictionary. Takes less time to find than tweet. DDD is not about aggregates and invisible messaging. It's about language in a context.
3
80
251
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
"Events are actions..." Events are *not* actions and don't necessarily represent future actions. A command represents the potential for future action. An event is a factual record that an action took place. Consumers should translate events to commands to react to the events.
15
40
250
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
If you want to understand what #CQRS is and isn't, I suggest reading my years-old blog post that explains CQRS from several angles and helps simplify its use: "Really Simple CQRS" It also corrects much of the current confusing messaging about it.
4
54
224
@VaughnVernon
Vaughn Vernon (@[email protected])
4 years
Hola amigos, with Google celebrating mariachi today and all, we thought it's a good time to release #DDDesign Distilled in Spanish. Get your copy of "Domain-Driven Design Destilado" here. It's free/gratis to all.
21
91
222
@VaughnVernon
Vaughn Vernon (@[email protected])
4 years
Hey, my Spanish speaking friends! Available soon: the Spanish translation of my #DDDesign Distilled book provided for FREE/GRATIS on . Everyone who speaks and reads Spanish as the language of their heart should learn #DDD . Please RT for broad reach.
11
141
219
@VaughnVernon
Vaughn Vernon (@[email protected])
6 months
Own 19 great software engineering and software development books for $25.00 (a $671.00 value for $1.31 each), including: - My #DDDesign Distilled - My Strategic #Monoliths and #Microservices - All books in my @pearson Addison Wesley Vaughn Vernon Signature Series Why would
13
56
210
@VaughnVernon
Vaughn Vernon (@[email protected])
2 months
@ardalis The 5 Laws of Estimates: 1. D 2. O 3. N 4. ' 5. T
6
19
189
@VaughnVernon
Vaughn Vernon (@[email protected])
5 months
These two figures from Chapter 8 of "Strategic Monoliths and Microservices" show how simple Hexagonal architecture is. Figure 1 is the whole architecture in one process. Figure 2 shows Inside versatility; lower right shows the Outside Imperative Shell around a Functional Core.
Tweet media one
Tweet media two
6
45
178
@VaughnVernon
Vaughn Vernon (@[email protected])
4 months
Here's an #EventStorming Cheat Sheet created in @kalele_domo Try Domo. It's free.
Tweet media one
4
27
178
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
#MonolithicArchitecture != Tight Coupling #BigBallOfMud == Tight Coupling #ROI is in differentiated strategic innovation, not in a deployable container. Architect for purpose.
Tweet media one
1
19
176
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
#DDDesign is not an architecture.
4
19
164
@VaughnVernon
Vaughn Vernon (@[email protected])
2 months
🥺🙄🤨 "Domain-Driven Design: ... of CQRS and Event Sourcing" 🤨🙄🥺 I hope that one day, it will be broadly understood that it's not CQRS/ES (ES for Event Sourcing) and that both CQRS and ES are orthogonal to #DDDesign . DDD is not synonymous with CQRS/ES and DDD required
14
37
165
@VaughnVernon
Vaughn Vernon (@[email protected])
5 months
"Hexagonal Architecture: Common Pitfalls" There are no pitfalls with Hexagonal (Ports & Adapters), only with the people implementing it. Adapter -> Driver-Port -> (Do-Stuff) -> Driven-Port -> Adapter The domain model, anemic/rich, is not part of Hexagonal but can exist inside.
9
30
164
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
When you start with this, monolith to microservices is a few days away. You may even decide not to.
Tweet media one
6
65
160
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
Y'all, this new book in my signature series will blow your mind. I love software patterns, and this is one of the best I have seen. If you are working with REST, messaging, and/or RPC, you are going to be thrilled. It will be available by December.
5
36
160
@VaughnVernon
Vaughn Vernon (@[email protected])
4 years
Prove them wrong. - Anemic has more lines of code - Anemic can't emit events - Anemic cannot be (thoroughly) tested - Anemic has invisible clients everywhere - Anemic has no behavior to reason about - Anemic has all the impl overhead with zero benefit
@SebastianBortz
Sebastian
4 years
@VaughnVernon How do i convince a colleague for switching from an anemic model to a domain model? Does anyone have ideas or tools with super power that help with someone having strong opinions about it?
14
1
10
8
60
164
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
People are suddenly complaining about #DDDesign Aggregates. In reality, Aggregate is not a complex pattern. I've been explaining simple designs for 12 yrs. Still, I don't understand why people insist on Aggregates when use cases prove they aren't needed. Basic Entity is fine.
6
11
160
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
Free comedy. A guy that has never used #DDDesign writes about how bad it is by comparing it to a Waterfall project back in the 1990s and then exemplifies someone not using DDD failing at it along with whack "domain experts." You can't make this stuff up.
29
22
159
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
One of the most straightforward and effective design tools is modules. One of the least well-used design tools is modules. How? See: - "Implementing Domain-Driven Design" - "Strategic Monoliths and Microservices" - Correctly applying Java package, C# namespace, Ruby module...
Tweet media one
Tweet media two
4
24
159
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
This Impact Map template shows (1) the difference between problem/strategic and solution/tactical design, and (2) most Scrum/Agile teams start at the right (tactical) rather than left (strategic) because stories are written before knowing the *why*. #ImpactMapping #DDDesign
Tweet media one
3
48
155
@VaughnVernon
Vaughn Vernon (@[email protected])
25 days
Satya Nadella announced that Linux wins the desktop.
@tsarnick
Tsarathustra
25 days
Satya Nadella says Windows PCs will have a photographic memory feature called Recall that will remember and understand everything you do on your computer by taking constant screenshots
5K
4K
11K
14
13
159
@VaughnVernon
Vaughn Vernon (@[email protected])
6 years
When you have figured out that common REST usage is very tightly coupled (not that it is by necessity), you really should embrace the next level. I have been promoting message- and event-driven for several years. "Post-REST: Mes­sag­ing and Event­ing"
6
64
143
@VaughnVernon
Vaughn Vernon (@[email protected])
5 months
One of the worst mistakes that people make is trying to get approval for using #dddesign . If you are doing it right, you shouldn't have to ask permission or get backing for #dddesign . Really. Most enterprise software could make major strides forward just by replacing the
13
27
145
@VaughnVernon
Vaughn Vernon (@[email protected])
11 months
No, Strategic Design is not the use of the Strategy design pattern. And, no, DDD is not an architecture style even if someone with a bazillion followers says it is. #dddesign
5
18
143
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
New book in my signature series now available: "Patterns for API Design: Simplifying Integration with Loosely Coupled Message Exchanges" By Olaf Zimmermann,  @m_st , @duebke @uwe_zdun , @pautasso
Tweet media one
3
22
137
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
Losing one parent is devastating. Losing both parents within 10 months of each other is crushing me. By last evening the last of the two cowboys from @DDD_Corral is gone. As all of my books indicate, my parents were two of my larger-than-life pillars. Writing it honored them.❤
31
1
140
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
A database schema is not a contract. An API is. If management wants to use database integration ("it's what we do"), ask them why they need contracts for the people they hire. Explain that all you need is VPN access and all they need is a mailing address to pay for your work.
11
39
139
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
I was informed that my print copy of "Principles of Web API Design" by @launchany has been shipped. Let me know when you receive(d) yours. The race is on.
Tweet media one
6
19
134
@VaughnVernon
Vaughn Vernon (@[email protected])
7 years
Just posted "Reactive Microservices" using #DDDesign for #Reactive #Microservices
6
65
132
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
If you are writing an Entity/Aggregate to a store and then publishing an event afterward, you are doing it wrong. There's no guarantee that the event will be published, with results just as bad as a failed REST call chain. Persist Entity+Event atomically and then publish.
3
19
130
@VaughnVernon
Vaughn Vernon (@[email protected])
4 years
Read "Microservices and [Micro]services" Taking a lesson from microprocessors can help us better understand the *purpose* of microservices.
5
57
130
@VaughnVernon
Vaughn Vernon (@[email protected])
4 years
Software development is: 11% mapping stuff 4% figuring out stuff to map 23% being wrong about what to map 62% getting sidetracked on slack
4
27
130
@VaughnVernon
Vaughn Vernon (@[email protected])
21 days
Why do people refer to Node.js as a programming language? I mean, I know it's because nobody understands anything anymore. So my real question is, why doesn't anybody understand anything anymore?
19
10
125
@VaughnVernon
Vaughn Vernon (@[email protected])
6 years
The point of single-team Bounded Contexts is that you want a consistent Ubiquitous Language. When multiple teams work on a single Bounded Context they will fracture and jumble the language with resulting incertitude. That's contrary to the goals of DDD.
4
58
124
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
"Decoupling" is way overused. Coupling is unavailable. If A uses B, A is coupled to B. If B changes its interface used by A, A will have to change: A->B You might alleviate the direct dependency: A->B1->B Yet, A is still coupled to B, and now B1 too. A->B is just less obvious.
32
11
124
@VaughnVernon
Vaughn Vernon (@[email protected])
8 years
My new book "Domain-Driven Design Distilled" is available on Amazon for pre-order:
8
70
119
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
Mine arrived today: "Patterns for API Design: Simplifying Integration with Loosely Coupled Message Exchanges" Learn about the MDSL that is so much simpler than the #OpenAPI spec and can be used to generate it.
Tweet media one
2
16
117
@VaughnVernon
Vaughn Vernon (@[email protected])
4 years
Bounded Context: The idea is to accept and embrace differences across a single business enterprise as normal rather than anomalous.
3
35
118
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
Developers are addicted to complexity, as if intentionally complex code is a goal. Team and individual performance reviews should be based on producing simplistic, readable code. Q: How is unnecessary complexity determined with simplicity thinkers being so rare? A: Tools.
8
36
117
@VaughnVernon
Vaughn Vernon (@[email protected])
6 years
I've been saying "Management has weaponized Scrum as a means to drive developers for more, more, more, faster." Agile is a mindset. Learn it, iterate, deliver, and don't forget about Knowledge Acquisition. /via @RonJeffries
4
68
118
@VaughnVernon
Vaughn Vernon (@[email protected])
3 months
I hate Scrum. I don't care whether anybody cares, even though they should care *why* I hate Scrum. Quote me. Will I use Scrum if a client uses Scrum? Of course, even though they probably suffer from using it.
@rixlabs
Riccardo Causo
3 months
Do you hate SCRUM? Guess what? Nobody cares. For every person hating something, there are a million loving it. Scrum is just an example. There is so much polarizing content on this platform that it is difficult to have real conversations. I fell for this engagement game too
18
2
18
18
8
113
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
Developers say that they will "attempt to apply Conway's Law more in the future." When you develop software you are always subject to Conway's Law. You develop software designs which are copies of your organization's communication structures. Good or bad, it's unavoidable.
8
43
115
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
The first book in my Signature Series is published: "Continuous Architecture in Practice: Software Architecture in the Age of Agility and DevOps" It's available now on @InformIT and soon on other US retailers ( @amazon ); a bit longer elsewhere.
6
23
115
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
💥💥💥ebook Now Available💥💥💥
Tweet media one
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
"Strategic Monoliths and Microservices" by @tjaskula and me is available for purchase on @InformIT . Hopefully pre-orderers have been notified. The print book is further delayed due to ongoing supply chain issues. The new availability date is 19 November.
5
11
34
2
28
115
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
My new book co-authored with @tjaskula will be published soon and is now available for pre-order for a 45% discount through US Labor Day using this coupon: BACKTOLEARN
Tweet media one
4
28
112
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
If you've been developing software for 15 years or so, you've probably realized: New is the new old.
3
23
114
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
The "problem" w TDD is that the second D is for Development, not Design, and software Developers think of Test purpose in terms of unit correctness. Tests to facilitate design are "Acceptance Tests" Tests to assert unit correctness are "Unit Tests" Simple. #DDDesign Distilled
6
15
113
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
#EventSourcing is now well past the peak of inflated expectations and trough of disillusionment. That means we're entering the slope of enlightenment. Watch this space.
5
19
111
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
The other night a developer argued that anemic models are simpler than rich, fluent, behavioral domain models. Anemic is easier, not simpler, and lazy-easy as a resolve leads to the wonders of mud. Of course getters/setters are easy to produce, but impossible to test how used.
4
46
111
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
Raspberry Pi 4, with 1 GB RAM is $35. Raspberry Pi 4, with 4 GB RAM is $55. I estimate that many business enterprises could be run on this hardware. Suggestion: Start a cloud platform that runs RPi 4 with Debian and sell for 1/3 the cost of AWS/Azure; revenue by the ton.
10
20
101
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
From "Strategic Monoliths and Microservices" ***Migration to Microservices is NOT a Project*** The characteristics of a project include plans, scheduled workload, allocation of resources and developers, a starting date, various milestones, and probably an end date. 1>
5
25
100
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
Gregor's Law ( @ghohpe ): "Excessive complexity is nature’s punishment for organizations that are unable to make decisions." You might not understand until you read subhead "Gregor's Law - Making Decisions" I think it is closely related to @conways_law
1
31
102
@VaughnVernon
Vaughn Vernon (@[email protected])
7 years
I say this often, and it's rejected almost as often.
3
73
100
@VaughnVernon
Vaughn Vernon (@[email protected])
6 years
How to fail at Bounded Context collaboration without even trying.
Tweet media one
7
54
98
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
Congratulations to the authors in my signature series who reached the published-book milestone in 2021. Thank you all for helping make the series a unique knowledge source for modern software development. @muraterder @PGP60 @eoinwoodz @hofstef @hschwentner @launchany @tjaskula
Tweet media one
2
18
100
@VaughnVernon
Vaughn Vernon (@[email protected])
6 years
Tweet media one
1
34
99
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
In Implementing #DDDesign why use Anticorruption Layer rather than a Repository to integrate with another Bounded Context? Typically the Repository pattern is used as an Adapter in front of a database. In general you could think of a Repository as an AcL over a database. 1/6
4
24
98
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
#DDDesign Bounded Contexts make excellent subsystem boundaries. Separation by language is logical. There's no need for such a boundary to be deployed as one microservice. Yet, if you have a good reason to use microservices, a full Bounded Context is a sensible starting point.
4
25
93
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
Diagramming Processes. Take your pick. 1. Sequence Numbers; difficult to show contexts
Tweet media one
2
27
97
@VaughnVernon
Vaughn Vernon (@[email protected])
2 months
@propensive I'm sorry to hear about all this. I had no idea what had happened, only that you disappeared. I thought it must have happened due to the Scala hullabaloo some years ago. I'm glad the root cause has been overcome and that your healing process has begun. I wish you all success
1
5
95
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
Timeline pressures don't cause you cut corners, take quality-compromising shortcuts, and write bad code. Timeline pressures give you an excuse to cut corners, take quality-compromising shortcuts, and write bad code. Don't.
8
39
95
@VaughnVernon
Vaughn Vernon (@[email protected])
4 months
PSA: Trunk-based Development (TBD) is not the new name for Continuous Delivery (CD). Also PSA: Ports & and Adapters (formerly named Hexagonal) Architecture does not mean: DDD, Event Sourcing, CQRS, Kafka, Kubernetes (and whatever else some people can think of). Yet another PSA:
3
19
93
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
A hybrid FP and OO architecture makes sense to me. FP is really great for certain things, but when you must produce effects due to the outside world of mutable state devices, why not hand that over to infrastructure code in OO? It's a mature, unbiased approach. /cc @tjaskula
8
33
94
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
Event-Driven Architecture is as much about ownership of data and responsibility as it is distribution. In other words, the distribution is for ownership responsibility, not for copying or reimplementation. Distribution can be within monolithic modules or microservices.
3
19
93
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
Microservices to Monolith. That's what happens when you choose an architecture before understanding whether its benefits will apply. Yet, you must be mature and secure persons and team to change it to the "uncool," yet best architecture for the *purpose*.
2
27
91
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
The new book "Continuous Architecture in Practice: Software Architecture in the Age of Agility and DevOps" by @muraterder @PGP60 & @eoinwoodz is now featured on @InformIT . This first book in my signature series has a print & ebook bundle for only $48.59.
Tweet media one
2
13
89
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
Why #reactive ? Software has been implemented against the wrong hardware architecture for the past 16 years. We don't purchase faster CPUs every 18-24 months. We purchase more cores. Software runs inefficiently because it's not designed for multicore & obsolete before it deploys.
1
34
88
@VaughnVernon
Vaughn Vernon (@[email protected])
8 months
There's a mistaken impression that asynchronous communication provides loose coupling between modules. Nope. Async messaging can be direct, meaning the sender is coupled to the receiver's address and receiver to sender by message type. There is a temporal decoupling with async,
3
15
88
@VaughnVernon
Vaughn Vernon (@[email protected])
4 years
Perfection is the enemy of Useful. The "perfection" of people who don't understand agile and continuous improvement cause gigantic overruns. Archaic and backward ways of working is intolerable, and it's never perfect anyway. Ship->Feedback->Improve Simple.
3
38
88
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
Every operation that involves persistence boils down to CRUD. Yet, REST over HTTP need not be used from a purely CRUD perspective. Consider the HTTP verb methods to be categories of operations. I've explained this many times, but there are so many who still need to be taught. 1/2
4
19
87
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
I just wrote to someone about an article they wrote RE CQRS. I hope it helps him & I hope posting bits of my thoughts here helps others. First: CQRS is *not* an architecture. CQRS is an architecture pattern. "An Architecture"/"Architecture Style" is about a bigger picture. 1/5
2
19
88
@VaughnVernon
Vaughn Vernon (@[email protected])
6 years
I answered an email asking why I covered ORM in my Aggregates chapter (and paper). It's because most developers that I encounter were and are still on it. Of all my blog posts the most popular is about how to avoid using ORM when stuck in relational. 🤔
5
27
85
@VaughnVernon
Vaughn Vernon (@[email protected])
7 years
Interested in Promise Theory but haven't understood? @markburgess_osl explains in less than 20 minutes in Parts1&2:
0
19
85
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
Generally people think of proactive as always better than reactive. I disagree. Decades ago I became known for saying "let's see what happens." It was usually related to software, but often life in general. Think about it: Waterfall is proactive. Being agile is reactive.
6
21
86
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
Take a first step with #DDDesign by replacing individual primitive/scalar/string attributes/properties with Value Objects that cluster those related to one another. Test new values and use. Assertion: long amount; String currency; Don't mean the same as: Money amount;
8
21
86
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
In case you missed the announcement, the new book in my signature series "Patterns for API Design" is now available in print, one month ahead of schedule. Surprise! (Amazon availability is roughly 10 days out, and the @InformIT pricing is comparable.)
Tweet media one
1
11
84
@VaughnVernon
Vaughn Vernon (@[email protected])
7 years
Ok, I just published a blog post on this subject "Microservices with DDD: To Event Source or Not":
1
38
83
@VaughnVernon
Vaughn Vernon (@[email protected])
10 months
But, hey, Java programmers have 10,001 annotations to make bad design much easier and faster to accomplish. Some annotations actually do nothing except make said programmers feel better because they can annotate one more thing.
@swcraftsman
Martin Müller Software Craftsman
10 months
Worrying about the resistence against DDD I was faced within Java community, I started to read @VaughnVernon 's book, hoping to find answers on how to push my teamates into the right direction. Seems there's nothing new under the sun since 12 years...
Tweet media one
0
2
22
7
10
83
@VaughnVernon
Vaughn Vernon (@[email protected])
3 years
An agile team could improve delivery so management is introducing SAFe to help them. Help is about to arrive.
4
15
83
@VaughnVernon
Vaughn Vernon (@[email protected])
5 years
I learned today that the book "Domain Storytelling" has been released. I haven't had time to read it but I hope to soon. When I do I'll try to provide a review.
3
17
83
@VaughnVernon
Vaughn Vernon (@[email protected])
7 years
If you need a quick online introduction to #DDDesign you can currently register for mine, free:
2
42
79
@VaughnVernon
Vaughn Vernon (@[email protected])
8 months
A Domain Event that is published outside your Bounded Context should be defined in your Published Language. The public API of your Bounded Context is your Open-Host Service. Open-Host Service and Published Language are generally used together, but they are distinct. #DDDesign
3
12
81
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
Behavior-Driven Development / Specification by Example are considered to have the following disadvantage: - Requires a high level of business engagement and collaboration. . . . *shakes head*
6
19
79
@VaughnVernon
Vaughn Vernon (@[email protected])
4 months
Complete decoupling is impossible for non-trivial software to function. A Domain Event couples at least one consumer service to the producer. Event translation decouples the service inside from its outside, but the outside is still coupled by necessity. Events offer the best
1
13
79
@VaughnVernon
Vaughn Vernon (@[email protected])
10 months
Assuming a #DDDesign Bounded Context requires model persistence, it should have it's own, non-shared database (at least one). That is, no other Bounded Contexts may have operational access to that database. Yet, "database" can be an overly generalized constraint: 1. The point is
5
15
80
@VaughnVernon
Vaughn Vernon (@[email protected])
1 year
Why implement Outbox & Inbox patterns? It requires significant effort, persistence and performance overhead; likely have lurking bugs; by the time you think they are right, you still haven't solved any *business* problems. Take it easy. Model uncertainty.
5
22
80
@VaughnVernon
Vaughn Vernon (@[email protected])
2 years
The DDD Score Card in "Implementing Domain-Driven Design" provides a means to determine whether you can justify the use of #DDDesign . Use it before trying to selling #DDD to your leadership.
Tweet media one
Tweet media two
4
15
79