@realmadrid El cabronazo tenía bien preparada la jugada... Mintió diciendo que iba a ofertar por un galáctico y encima sabía que no le iban a aceptar la oferta... Ficha a Osinhem por la mitad si quieres y traes un medio anda majo
@Atleti@realmadrid Las risas cuando el jugador diga que se quiere ir o se ponga en rebeldía o no renueve y se lo regaléis al Barça si que van a ser sonoras... No aprendéis nada... patéticos!
Solo un filósofo como Slavoj Žižek sabría conectar la Inteligencia Artificial, el sexo y el descenso de coeficiente intelectual que está dándose en todo el mundo desde 2010.
Hoy se cumplen 15 años del “Flu Game” de Dirk Nowitzki:
Los Dallas Mavericks perdían 2-1 las Finales frente a Miami Heat
Dwyane Wade y LeBron James se burlaron de él antes del partido por estar enfermo
Los Mavs remontaron y se llevaron el anillo 💍
El próximo Gobierno de España tiene que entender que el futuro del país pende de las interfaces digitales:
— Conseguir comprar un billete en la web de Renfe
— Que un médico pueda acceder a tu historia clínica si necesitas asistencia fuera de tu comunidad autónoma
— Pagar tasas administrativas por bizum o transferencia, sin tener que personarte en un banco
La tecnología no es un vertical ni un ministerio: es un habilitador transversal a todo.
The happy path is comfortable.
That’s why it’s dangerous.
You write a registration flow:
- save the user
- send a welcome email
- track the signup in analytics
It looks clean.
It reads well.
It works locally.
Then production happens.
The email provider is slow.
The analytics API returns 503.
The network times out halfway through.
Now your "simple" method has to answer uncomfortable questions:
Should the user wait for analytics?
Should registration fail because email is down?
What happens if the user is saved, the email is sent, and analytics fails?
Do you roll back?
Do you retry?
Do you leave the system inconsistent?
This is where interfaces don’t really save you.
`IEmailService` and `IAnalyticsService` decouple implementation details.
They don’t decouple orchestration.
Your user registration flow is still directly responsible for side effects that belong somewhere else.
The first step is domain events.
The registration flow should say:
"User registered."
Then other handlers decide what to do.
Send email.
Track analytics.
Invalidate cache.
But domain events alone don’t solve reliability.
If the process crashes at the wrong time, you can still save the user and lose the event.
That’s where the Outbox pattern comes in.
Save the user and the event in the same database transaction.
Then publish the event later from a background worker.
Now email or analytics failures don’t break registration.
And if the next step is a mandatory business dependency?
That’s when you need a Saga.
Simple notifications?
Domain Events + Outbox.
Critical workflows with compensation?
Saga.
The real lesson:
Decoupling is not just about cleaner code.
It’s about designing around failure boundaries.
I wrote a full breakdown here: https://t.co/SRvTrO4RaI
How do you enforce architecture rules in code?
Compilers won’t catch violations. Code reviews are hit or miss.
There’s a better way: architecture tests.
They’re automated checks that verify structure and design, written in C#.
Use them to:
• Enforce project dependency directions
• Restrict coupling between components
• Apply naming conventions
Here’s how to write your first one in minutes: https://t.co/dLYX6Vqqc5
And remember: architecture should speed you up, not box you in.