<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Matheus Moura</title>
    <description>The latest articles on DEV Community by Matheus Moura (@devmatheusmoura).</description>
    <link>https://dev.to/devmatheusmoura</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3737300%2Fd1e74c01-c9fd-438b-8d6e-a6b018051f06.jpg</url>
      <title>DEV Community: Matheus Moura</title>
      <link>https://dev.to/devmatheusmoura</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devmatheusmoura"/>
    <language>en</language>
    <item>
      <title>Do Java ao Python: A arte de simplificar tarefas assíncronas</title>
      <dc:creator>Matheus Moura</dc:creator>
      <pubDate>Thu, 29 Jan 2026 19:03:35 +0000</pubDate>
      <link>https://dev.to/devmatheusmoura/do-java-ao-python-a-arte-de-simplificar-tarefas-assincronas-467f</link>
      <guid>https://dev.to/devmatheusmoura/do-java-ao-python-a-arte-de-simplificar-tarefas-assincronas-467f</guid>
      <description>&lt;h2&gt;
  
  
  Do Java ao Python: A arte de simplificar tarefas assíncronas
&lt;/h2&gt;

&lt;p&gt;Sou desenvolvedor Java há 5 anos. Se você vem desse mundo, sabe que somos treinados para pensar em arquiteturas robustas. Precisa enviar um e-mail depois que o usuário se cadastra? &lt;em&gt;"Ah, vamos subir um RabbitMQ, criar um Producer, configurar um Consumer, lidar com Ack/Nack..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Quando comecei a migrar para o &lt;strong&gt;Python&lt;/strong&gt; e &lt;strong&gt;FastAPI&lt;/strong&gt; (estou desenvolvendo um SaaS chamado Pitaia Hub), meu primeiro instinto foi replicar essa infraestrutura complexa.&lt;/p&gt;

&lt;p&gt;Foi aí que descobri o &lt;code&gt;BackgroundTasks&lt;/code&gt; do FastAPI e percebi que estava "matando moscas com canhão".&lt;/p&gt;

&lt;h2&gt;
  
  
  O Problema: Latência na Resposta
&lt;/h2&gt;

&lt;p&gt;Imagine o cenário clássico:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Usuário cria conta.&lt;/li&gt;
&lt;li&gt;Sistema salva no banco.&lt;/li&gt;
&lt;li&gt;Sistema conecta no SMTP (Gmail/AWS SES) e envia e-mail de boas-vindas.&lt;/li&gt;
&lt;li&gt;Sistema retorna &lt;code&gt;200 OK&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O passo 3 demora, digamos, 2 a 4 segundos. Para o usuário, a tela fica travada.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Solução "Enterprise" (O Jeito Java/Mensageria)
&lt;/h2&gt;

&lt;p&gt;No mundo Java (Spring Boot), ou mesmo em arquiteturas Python mais complexas (Celery), resolveríamos isso desacoplando a tarefa:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;API:&lt;/strong&gt; Salva user e publica mensagem na fila &lt;code&gt;user_created&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Broker (RabbitMQ/Kafka):&lt;/strong&gt; Recebe e guarda a mensagem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Worker:&lt;/strong&gt; Processo separado que lê a fila e envia o e-mail.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Funciona? Sim. É robusto? Muito. É necessário para enviar um simples e-mail de "Oi"? &lt;strong&gt;Provavelmente não.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A Solução "Simples" (FastAPI BackgroundTasks)
&lt;/h2&gt;

&lt;p&gt;O FastAPI traz um conceito de "Fire and Forget" embutido, que roda na mesma aplicação, logo após o retorno da resposta HTTP.&lt;/p&gt;

&lt;p&gt;Veja como é simples. Sem filas, sem workers externos, sem Docker extra.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fukmbhqp6ih5pwukvujrv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fukmbhqp6ih5pwukvujrv.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

from fastapi import FastAPI, BackgroundTasks

app = FastAPI()

def enviar_email(email: str):
    # Simula um delay de I/O (SMTP)
    import time
    time.sleep(5)
    print(f"E-mail enviado para {email}")

@app.post("/users")
async def criar_usuario(email: str, background_tasks: BackgroundTasks):
    # 1. Regra de Negócio Crítica (Rápida)
    print("Usuário salvo no banco")

    # 2. Agendamento da Tarefa
    background_tasks.add_task(enviar_email, email)

    # 3. Retorno Imediato
    return {"message": "Usuário criado! O e-mail chegará em breve."}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
  </channel>
</rss>
