Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile
Antônio Falcão Jr.

@antoniofalcaojr

Software Solutions Architect, MSc student in Computer Science, experienced in #ReactiveDDD, #EventSourcing, #CQRS, #DistributedSystems, and #Dotnet ecosytem

ID: 1495828839238352896

linkhttp://antoniofalcaojr.github.io/ calendar_today21-02-2022 18:33:53

627 Tweet

896 Followers

116 Following

Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

I often compare choreography- (reactive systems) and orchestration-based microservices integration to soccer team dynamics. In soccer, a coach can instruct each player on what to do next, but this approach could be more efficient. The team's capacity will be determined and, in a

I often compare choreography- (reactive systems) and orchestration-based microservices integration to soccer team dynamics.

In soccer, a coach can instruct each player on what to do next, but this approach could be more efficient. The team's capacity will be determined and, in a
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

In addition to the significant improvements in scalability, resilience, and process distribution, what I really appreciate about using a message broker (with a robust message bus) over the "in-process" Mediator pattern is the design cohesion. There's no need to distinguish

In addition to the significant improvements in scalability, resilience, and process distribution, what I really appreciate about using a message broker  (with a robust message bus) over the "in-process" Mediator pattern is the design cohesion. There's no need to distinguish
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

When did the "development environment" become the "cloud development environment"? Vendor lock-in without local support should be a crime. Note: It's a rhetorical question.

Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

This is a well-documented example of how NOT to apply #EventDriven principles to a system: medium.com/@shiiyan/how-i… Interestingly, I recently shared this with one of our teams: "#EventDrivenArchitecture (EDA) isn't just a tool to lift and shift your transactional code. EDA is a

Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

"Skinny/Thin/Notification" Events and Reactivity "Skinny" (or thin/notification) events—those with minimal payloads, often just a single identifier—contradict the principles of reactivity by introducing temporal dependencies. This forces the consuming system to either "wait" or

"Skinny/Thin/Notification" Events and Reactivity

"Skinny" (or thin/notification) events—those with minimal payloads, often just a single identifier—contradict the principles of reactivity by introducing temporal dependencies. This forces the consuming system to either "wait" or
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

A poorly decomposed system introduces more challenges than it solves: Higher Latency: Frequent network calls between tightly coupled services. Complexity: Increased operational overhead to manage communication failures. Inefficiency: Recreating monolithic dependencies across a

Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

1/10 Truths in Distributed Systems Design applied to Reactive DDD: "It’s Never Just Two Boxes and a Line!" This truth highlights the risk of oversimplifying the complexity of distributed systems. Emergent behaviors are inevitable in such systems, making principles like

1/10 Truths in Distributed Systems Design applied to Reactive DDD: 

"It’s Never Just Two Boxes and a Line!"

This truth highlights the risk of oversimplifying the complexity of distributed systems. Emergent behaviors are inevitable in such systems, making principles like
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

2/10 Truths in Distributed Systems Design applied to Reactive DDD: "The best way to make systems loosely coupled is by not connecting them." Favor event-driven communication between bounded contexts instead of direct API calls. Choreography-based systems—where events flow

2/10 Truths in Distributed Systems Design applied to Reactive DDD:

"The best way to make systems loosely coupled is by not connecting them."

Favor event-driven communication between bounded contexts instead of direct API calls.

Choreography-based systems—where events flow
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

3/10 Truths in #DistributedSystems Design applied to #ReactiveDDD: "The appropriate level of coupling depends on the level of control you have over the endpoints." This principle applies to bounded contexts as microservices/modules. Internal coupling within a bounded context

3/10 Truths in #DistributedSystems Design applied to #ReactiveDDD: "The appropriate level of coupling depends on the level of control you have over the endpoints."

This principle applies to bounded contexts as microservices/modules. Internal coupling within a bounded context
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

4/10 Truths in #DistributedSystems Design applied to #ReactiveDDD: "Loose coupling is better than lousy coupling." Coupling is unavoidable. To handle failures effectively, design for idempotency, accept eventual consistency as a trade-off for scalability and resilience, and

4/10 Truths in #DistributedSystems Design applied to #ReactiveDDD: "Loose coupling is better than lousy coupling."

Coupling is unavoidable. To handle failures effectively, design for idempotency, accept eventual consistency as a trade-off for scalability and resilience, and
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

It is fascinating how the community around reactive systems is evolving. I want to thank Sam Hatoum and Raf Lefever for their significant contribution (which helped me explain the event-sourced systems). "Investing in scale and real reliability can be made at various system

It is fascinating how the community around reactive systems is evolving. I want to thank Sam Hatoum and Raf Lefever for their significant contribution (which helped me explain the event-sourced systems). 

"Investing in scale and real reliability can be made at various system
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

The end of the year was so intense that I almost forgot to express my gratitude to BR-BIT (especially to Leonildo V., Marlon B., and Alan R.) for the opportunity to contribute to their initiatives. BR-BIT is modernizing its solutions by building a distributed, scalable platform

The end of the year was so intense that I almost forgot to express my gratitude to BR-BIT (especially to Leonildo V., Marlon B., and Alan R.) for the opportunity to contribute to their initiatives.

BR-BIT is modernizing its solutions by building a distributed, scalable platform
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

5/10 Truths in #DistributedSystems Design applied to #ReactiveDDD: "Queues invert control flow but require flow control." #EventStorming is a collaborative modeling technique well-suited for exploring domains and identifying "choreography-based integration points." It aids in

5/10 Truths in #DistributedSystems Design applied to #ReactiveDDD: "Queues invert control flow but require flow control."

#EventStorming is a collaborative modeling technique well-suited for exploring domains and identifying "choreography-based integration points." It aids in
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

As a software developer, you've likely pondered this question: When is it best to use exceptions, and when should we opt for the result pattern? A well-designed system incorporates multiple levels of validation. The first layer, known as Fail-Fast, occurs at the entry point (at

As a software developer, you've likely pondered this question: When is it best to use exceptions, and when should we opt for the result pattern?

A well-designed system incorporates multiple levels of validation. The first layer, known as Fail-Fast, occurs at the entry point (at
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

Exciting News! I'll be attending the EventCentric conference at Domain-Driven Design Europe 2025 in Antwerp, Belgium, on June 4-5! Event-driven systems have been a core part of my career, whether as a developer, architect, or consultant, helping to shape resilient, scalable, and

Exciting News! I'll be attending the EventCentric conference at Domain-Driven Design Europe 2025 in Antwerp, Belgium, on June 4-5!

Event-driven systems have been a core part of my career, whether as a developer, architect, or consultant, helping to shape resilient, scalable, and
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

Just arrived at Explore DDD Conference in Denver! Excited to join some of the greatest minds in #DomainDrivenDesign and dive deep into real-world #DistributedSystems and strategic modeling. #DDDesign

Just arrived at <a href="/ExploreDDD/">Explore DDD Conference</a> in Denver!

Excited to join some of the greatest minds in #DomainDrivenDesign and dive deep into real-world #DistributedSystems and strategic modeling.

#DDDesign
Antônio Falcão Jr. (@antoniofalcaojr) 's Twitter Profile Photo

There is a persistent gap between context-specific entities in DDD and the focus on canonical ones. The same entity can have multiple perspectives, and composition is simply a matter of view. Domain Events propagate state rather than data.