O documento discute background jobs utilizando a ferramenta Sidekiq. Sidekiq é um processador de filas baseado em Redis que pode ser usado para executar tarefas em segundo plano, como envio de e-mails, geração de relatórios e inserção de dados no banco. O documento também fornece exemplos de uso de Sidekiq e boas práticas para trabalhar com jobs assíncronos.
O documento descreve como o palestrante melhorou a performance de consultas no BigQuery em 50x ao migrar para a BigQuery Storage Read API e usar o formato de dados Apache Arrow. A apresentação também discute os protocolos gRPC e HTTP/2 e como eles melhoram a performance em comparação com a BigQuery REST API original.
O documento apresenta Redis, uma ferramenta de armazenamento de dados do tipo chave-valor que armazena dados na memória RAM para evitar I/O de discos. Redis oferece uma estrutura de servidor de dados e tipos de dados como strings, hashes, lists, sets e hyperlogs. O documento também discute instalação, comandos, casos comuns de uso, benchmark com Memcached e demonstração de uso do Redis como cache versus Entity Framework.
O documento apresenta Redis, uma ferramenta de armazenamento de dados do tipo chave-valor que armazena dados na memória RAM para evitar I/O de discos. Apresenta casos comuns de uso de Redis como cache, sessões e tabelas de classificação. Inclui demonstração de benchmark comparando desempenho de Redis versus Entity Framework.
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...iMasters
O appliance IBM Netezza consiste em uma plataforma de banco de dados otimizado e integrado a um hardware de alta performance. Uma nova forma de análise em grandes volumes de dados é fator chave de competitividade para as empresas.
As soluções tradicionais de datawarehouse são rígidas, complexas, lentas e caras, inibindo a agilidade na tomada de decisões. O IBM Netezza é uma plataforma que foi desenvolvida para endereçar exatamente este problema: uma solução de performance desruptiva, administração muito simples e custo reduzido, utilizado para datawarehouses de grande volume e complexidade.
Ele integra banco de dados, servidor, e discos de armazenamento em um único rack. Sua arquitetura de processamento massivo paralelo combina blades de processamento, discos e um processo de filtragem de dados através de software armazenado diretamente em chips (FPGAs: field-programmable gate arrays). Este é o diferencial de performance do IBM Netezza quando comparado aos concorrentes: sua arquitetura é única e inteligente, devido ao uso de FPGAs com software gravado diretamente em silício, lê menos dados e também move menos dados entre os componentes internos, eliminando desperdícios e gargalos de processamento. Esta arquitetura dispensa tuning, índices, particionamento, etc. tornando a administração simples, permitindo que a equipe técnica tenha mais tempo para trabalhar em projetos de negócio ao invés de gastar tempo em atividades técnicas/administrativas que não geram valor agregado.
Veja o webcast no link http://www.videolog.tv/devworksbr/videos/716598
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
Este documento discute como usar Xen e CoreOS para implementar uma solução de data mining com NodeJS e ElasticSearch de forma escalável e segura. Ele apresenta dois estudos de caso reais de aplicações intensivas de dados e discute os desafios de levantamento de requisitos e escalabilidade, propondo estratégias como uso de cloud privada, Docker, bancos de dados multi-níveis e cache para atender requisitos de alto desempenho e disponibilidade.
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
O documento apresenta o conceito e uso de filas de processamento para comunicação assíncrona entre processos. É discutido como filas podem liberar a interface do usuário, inverter a comunicação de servidor para cliente e granularizar processos. Exemplos de ferramentas para filas incluem RabbitMQ, Apache ActiveMQ, Kafka e ferramentas em nuvem como Amazon SQS e Azure Service Bus.
[DTC21] André Marques - Jornada do Engenheiro de DadosDeep Tech Brasil
O documento discute a jornada do engenheiro de dados, incluindo as habilidades necessárias, como bancos de dados, linguagens de programação, ferramentas de nuvem e integração de dados. Também aborda as carreiras originais dos engenheiros de dados, como analista de BI e desenvolvedor, e perspectivas futuras para a profissão, como alta demanda e constante mudança tecnológica.
O documento descreve como o palestrante melhorou a performance de consultas no BigQuery em 50x ao migrar para a BigQuery Storage Read API e usar o formato de dados Apache Arrow. A apresentação também discute os protocolos gRPC e HTTP/2 e como eles melhoram a performance em comparação com a BigQuery REST API original.
O documento apresenta Redis, uma ferramenta de armazenamento de dados do tipo chave-valor que armazena dados na memória RAM para evitar I/O de discos. Redis oferece uma estrutura de servidor de dados e tipos de dados como strings, hashes, lists, sets e hyperlogs. O documento também discute instalação, comandos, casos comuns de uso, benchmark com Memcached e demonstração de uso do Redis como cache versus Entity Framework.
O documento apresenta Redis, uma ferramenta de armazenamento de dados do tipo chave-valor que armazena dados na memória RAM para evitar I/O de discos. Apresenta casos comuns de uso de Redis como cache, sessões e tabelas de classificação. Inclui demonstração de benchmark comparando desempenho de Redis versus Entity Framework.
Datawarehouse - Obtenha insights consistentes para o seu negócio: conheça o n...iMasters
O appliance IBM Netezza consiste em uma plataforma de banco de dados otimizado e integrado a um hardware de alta performance. Uma nova forma de análise em grandes volumes de dados é fator chave de competitividade para as empresas.
As soluções tradicionais de datawarehouse são rígidas, complexas, lentas e caras, inibindo a agilidade na tomada de decisões. O IBM Netezza é uma plataforma que foi desenvolvida para endereçar exatamente este problema: uma solução de performance desruptiva, administração muito simples e custo reduzido, utilizado para datawarehouses de grande volume e complexidade.
Ele integra banco de dados, servidor, e discos de armazenamento em um único rack. Sua arquitetura de processamento massivo paralelo combina blades de processamento, discos e um processo de filtragem de dados através de software armazenado diretamente em chips (FPGAs: field-programmable gate arrays). Este é o diferencial de performance do IBM Netezza quando comparado aos concorrentes: sua arquitetura é única e inteligente, devido ao uso de FPGAs com software gravado diretamente em silício, lê menos dados e também move menos dados entre os componentes internos, eliminando desperdícios e gargalos de processamento. Esta arquitetura dispensa tuning, índices, particionamento, etc. tornando a administração simples, permitindo que a equipe técnica tenha mais tempo para trabalhar em projetos de negócio ao invés de gastar tempo em atividades técnicas/administrativas que não geram valor agregado.
Veja o webcast no link http://www.videolog.tv/devworksbr/videos/716598
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
Este documento discute como usar Xen e CoreOS para implementar uma solução de data mining com NodeJS e ElasticSearch de forma escalável e segura. Ele apresenta dois estudos de caso reais de aplicações intensivas de dados e discute os desafios de levantamento de requisitos e escalabilidade, propondo estratégias como uso de cloud privada, Docker, bancos de dados multi-níveis e cache para atender requisitos de alto desempenho e disponibilidade.
TDC2016SP - O bê-a-bá da fila de processamento para você deixar o ThreadPool ...tdc-globalcode
O documento apresenta o conceito e uso de filas de processamento para comunicação assíncrona entre processos. É discutido como filas podem liberar a interface do usuário, inverter a comunicação de servidor para cliente e granularizar processos. Exemplos de ferramentas para filas incluem RabbitMQ, Apache ActiveMQ, Kafka e ferramentas em nuvem como Amazon SQS e Azure Service Bus.
[DTC21] André Marques - Jornada do Engenheiro de DadosDeep Tech Brasil
O documento discute a jornada do engenheiro de dados, incluindo as habilidades necessárias, como bancos de dados, linguagens de programação, ferramentas de nuvem e integração de dados. Também aborda as carreiras originais dos engenheiros de dados, como analista de BI e desenvolvedor, e perspectivas futuras para a profissão, como alta demanda e constante mudança tecnológica.
O documento discute conceitos básicos sobre bancos de dados, incluindo sua definição, evolução e importância. Também aborda os principais componentes de um sistema de gerenciamento de banco de dados como modelo de dados, linguagens e gerenciamento de transações.
Monitorando os Recursos e Processos do Servidor, através do Power BISulamita Dantas
O documento discute como monitorar recursos e processos do servidor através do Power BI. Apresenta como configurar o Perfmon e Relog para coletar métricas e importá-las para o SQL Server. Em seguida, cria dashboards no Power BI para visualizar e analisar os dados coletados.
O documento apresenta um resumo sobre o curso de Informática de Gestão, destacando que o curso capacita os estudantes a trabalhar com computadores, programação, redes e sistemas de informação para aplicar esses conhecimentos em áreas como informática, contabilidade e administração. O documento também descreve algumas das disciplinas do curso e as saídas profissionais, como técnico de informática.
O documento discute a tecnologia BranchCache do Windows Server 2008 R2, que otimiza o uso de links WAN entre filiais e sede centralizando caches de dados nos clientes ou em um servidor central hospedado. A BranchCache criptografa todo o tráfego e autentica clientes para garantir segurança. Pode ser implementada de forma distribuída entre clientes ou centralizada em um servidor hospedado.
O documento discute os benefícios da arquitetura de banco de dados replicada para aplicações corporativas em múltiplos sites. Apresenta conceitos de replicação e classifica softwares replicadores. Discute como evitar inconsistências na replicação assíncrona multi-master e fornece dicas de modelagem de dados. Apresenta dois casos práticos de replicação usando o software Object MMRS.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Este documento discute estratégias para melhorar o desempenho de bancos de dados. Ele resume que a maioria dos problemas de desempenho estão relacionados ao mau uso de consultas SQL e à má modelagem de dados, e discute técnicas como mapeamento objeto-relacional, lazy loading, eager loading e caching para melhorar o desempenho.
O documento discute os desafios de gerenciamento e recuperação de dados em ambientes corporativos modernos. Apresenta o IBM Tivoli Storage Manager Fastback como uma solução capaz de reduzir o tempo de recuperação, melhorar a disponibilidade de aplicações e fornecer backup e restauração para escritórios remotos e pequenas empresas de maneira eficiente.
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Leandro Guimarães
O documento descreve a evolução da Internet desde sua criação pela ARPANET até os dias atuais, com a popularização da World Wide Web na década de 1990. Também discute as tendências de separação entre clientes e servidores, com clientes mais leves e servidores concentrando mais processamento. Isso permite melhor escalabilidade e usabilidade.
Scrum e o Ambiente de Desenvolvimento Ágilabacrazy
O documento discute princípios e métodos ágeis para desenvolvimento de software, como:
- Colocar pessoas e colaboração acima de processos e ferramentas;
- Entregar software funcionando com frequência ao invés de longos documentos;
- Responder à mudança ao invés de seguir um plano rígido.
O documento discute várias técnicas e estratégias para melhorar o desempenho de aplicações ASP.NET MVC, incluindo: 1) otimizar requisições HTTP reduzindo chamadas e downloads; 2) usar cache efetivamente para evitar processamento desnecessário; 3) minificar e combinar arquivos CSS e JavaScript para reduzir tamanho;
Palestra apresentada na XLVII Jornada de Desenvolvimento Tecnológico promovida pela Faculdade de Computação e Informática da Universidade Presbiteriana Mackenzie em 13.10.2014
Bigdata na pratica: Resolvendo problemas de performance com hadooptdc-globalcode
O Apache Hadoop tem se tornado o framework padrão para processamento de Big Data. Com ele, podemos processar grandes volumes de dados utilizando hardware de baixo custo de forma paralela e distribuída. Essas características podem ser úteis no cotidiano do desenvolvedor, otimizando a execução de rotinas batch e geração de relatórios, por exemplo. Nesta palestra serão mostrados os passos para desenvolver uma solução utilizando algumas ferramentas que fazem parte do ecossistema do Hadoop: MapReduce, HDFS e HBase.
O documento apresenta a empresa Emgetis, descrevendo sua missão, visão e valores. Também fornece detalhes sobre o hardware, software, pessoas, dados e telecomunicações da empresa, além de sugestões para melhorias em cada área.
Este documento discute os benefícios de usar bancos de dados NoSQL e apresenta vários estudos de caso de empresas que migraram com sucesso para sistemas NoSQL como MongoDB e Redis. Ele também aborda desafios comuns como importação e exportação de dados, recuperação em caso de falha e questões de escalabilidade.
Este documento resume um curso de Informática de Gestão, incluindo: 1) O foco no trabalho com computadores, programação, redes e bases de dados; 2) As saídas profissionais como técnico de informática; 3) O aprendizado de linguagens de programação como Java e conceitos de sistemas de informação e banco de dados.
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...Amazon Web Services LATAM
Utilizada pelos maiores bancos do país, a solução Guardião da Diebold, utiliza os serviços da AWS (CloudFront, S3, SQS, SNS, API Gateway, Lambda) para escrever a nova versão da plataforma, dando mais agilidade ao seu time e clientes, com segurança e escalabilidade.
O documento discute conceitos básicos sobre bancos de dados, incluindo sua definição, evolução e importância. Também aborda os principais componentes de um sistema de gerenciamento de banco de dados como modelo de dados, linguagens e gerenciamento de transações.
Monitorando os Recursos e Processos do Servidor, através do Power BISulamita Dantas
O documento discute como monitorar recursos e processos do servidor através do Power BI. Apresenta como configurar o Perfmon e Relog para coletar métricas e importá-las para o SQL Server. Em seguida, cria dashboards no Power BI para visualizar e analisar os dados coletados.
O documento apresenta um resumo sobre o curso de Informática de Gestão, destacando que o curso capacita os estudantes a trabalhar com computadores, programação, redes e sistemas de informação para aplicar esses conhecimentos em áreas como informática, contabilidade e administração. O documento também descreve algumas das disciplinas do curso e as saídas profissionais, como técnico de informática.
O documento discute a tecnologia BranchCache do Windows Server 2008 R2, que otimiza o uso de links WAN entre filiais e sede centralizando caches de dados nos clientes ou em um servidor central hospedado. A BranchCache criptografa todo o tráfego e autentica clientes para garantir segurança. Pode ser implementada de forma distribuída entre clientes ou centralizada em um servidor hospedado.
O documento discute os benefícios da arquitetura de banco de dados replicada para aplicações corporativas em múltiplos sites. Apresenta conceitos de replicação e classifica softwares replicadores. Discute como evitar inconsistências na replicação assíncrona multi-master e fornece dicas de modelagem de dados. Apresenta dois casos práticos de replicação usando o software Object MMRS.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Este documento discute estratégias para melhorar o desempenho de bancos de dados. Ele resume que a maioria dos problemas de desempenho estão relacionados ao mau uso de consultas SQL e à má modelagem de dados, e discute técnicas como mapeamento objeto-relacional, lazy loading, eager loading e caching para melhorar o desempenho.
O documento discute os desafios de gerenciamento e recuperação de dados em ambientes corporativos modernos. Apresenta o IBM Tivoli Storage Manager Fastback como uma solução capaz de reduzir o tempo de recuperação, melhorar a disponibilidade de aplicações e fornecer backup e restauração para escritórios remotos e pequenas empresas de maneira eficiente.
Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e efi...Leandro Guimarães
O documento descreve a evolução da Internet desde sua criação pela ARPANET até os dias atuais, com a popularização da World Wide Web na década de 1990. Também discute as tendências de separação entre clientes e servidores, com clientes mais leves e servidores concentrando mais processamento. Isso permite melhor escalabilidade e usabilidade.
Scrum e o Ambiente de Desenvolvimento Ágilabacrazy
O documento discute princípios e métodos ágeis para desenvolvimento de software, como:
- Colocar pessoas e colaboração acima de processos e ferramentas;
- Entregar software funcionando com frequência ao invés de longos documentos;
- Responder à mudança ao invés de seguir um plano rígido.
O documento discute várias técnicas e estratégias para melhorar o desempenho de aplicações ASP.NET MVC, incluindo: 1) otimizar requisições HTTP reduzindo chamadas e downloads; 2) usar cache efetivamente para evitar processamento desnecessário; 3) minificar e combinar arquivos CSS e JavaScript para reduzir tamanho;
Palestra apresentada na XLVII Jornada de Desenvolvimento Tecnológico promovida pela Faculdade de Computação e Informática da Universidade Presbiteriana Mackenzie em 13.10.2014
Bigdata na pratica: Resolvendo problemas de performance com hadooptdc-globalcode
O Apache Hadoop tem se tornado o framework padrão para processamento de Big Data. Com ele, podemos processar grandes volumes de dados utilizando hardware de baixo custo de forma paralela e distribuída. Essas características podem ser úteis no cotidiano do desenvolvedor, otimizando a execução de rotinas batch e geração de relatórios, por exemplo. Nesta palestra serão mostrados os passos para desenvolver uma solução utilizando algumas ferramentas que fazem parte do ecossistema do Hadoop: MapReduce, HDFS e HBase.
O documento apresenta a empresa Emgetis, descrevendo sua missão, visão e valores. Também fornece detalhes sobre o hardware, software, pessoas, dados e telecomunicações da empresa, além de sugestões para melhorias em cada área.
Este documento discute os benefícios de usar bancos de dados NoSQL e apresenta vários estudos de caso de empresas que migraram com sucesso para sistemas NoSQL como MongoDB e Redis. Ele também aborda desafios comuns como importação e exportação de dados, recuperação em caso de falha e questões de escalabilidade.
Este documento resume um curso de Informática de Gestão, incluindo: 1) O foco no trabalho com computadores, programação, redes e bases de dados; 2) As saídas profissionais como técnico de informática; 3) O aprendizado de linguagens de programação como Java e conceitos de sistemas de informação e banco de dados.
Utilizando a nuvem para proteger o mercado financeiro com segurança, agilidad...Amazon Web Services LATAM
Utilizada pelos maiores bancos do país, a solução Guardião da Diebold, utiliza os serviços da AWS (CloudFront, S3, SQS, SNS, API Gateway, Lambda) para escrever a nova versão da plataforma, dando mais agilidade ao seu time e clientes, com segurança e escalabilidade.
11. Boas práticas
- Parâmetros dos jobs serem sempre pequenos e simples
- Não chamar workers dentro de transactions do banco de dados
- Idempotency
- Concorrência, benchmark e saber os limites
13. Envio de Email
- Emails devem sempre serem enviados em background
- Servidor de envio de emails ou servidor de email do cliente podem estar offline
- Caixa de entrada do usuário pode estar cheia
- deliver_later
- delay
14. Geração de Relatórios
- Processamento grande de dados
- Queries grandes no banco
- Salvar arquivos e enviar emails
Background job é, como o próprio nome já diz, o processamento de alguma tarefa, algum job, em background, sem precisar que a aplicação utilizada pelo usuário fique parada esperando essa tarefa ser realizada. Pegando de forma mais macro, pensando em tarefas macros, para o usuário final, o processamento da foto é algo feito em background, pois enquanto isso é realizado, o usuário pode continuar usando o app, inclusive mandar mais fotos. Pensando mais especificamente de sistemas, é por exemplo, o envio de email de confirmação para o usuário após um cadastro, ser executado de forma que não interfira no cadastro do usuário, o cadastro ter sido finalizado, e em paralelo, sem que o usuário mesmo saiba, o email está sendo processado para ser enviado
O rails é singlethreaded e por isso se torna mais necessário ainda a utilização de background jobs para permitir que mais processos possam ser executados em paralelo
Redis é um banco de dados em memória, que é muito utilizado para cache, pois é fácil de utilizar. Pode ser utilizado como banco de dados realmente, ou até message broker. No nosso caso, ele é o banco de dados que usaremos para guardar os nossos jobs e as filas de execução.
O sidekiq tem o redis como dependência, já vindo integrado com o mesmo para utilização.
Existem algumas alternativas de gems para serem utilizadas com o ruby para processamento de background jobs. O resque ainda é o mais utilizado, mas aqui eu vou focar no sidekiq e vou mostrar exemplos de como utilizar ele.
https://github.com/mperham/sidekiq#performance
Uma coisa curiosa que acho que vale a pena citar aqui, há alguns anos eu trabalhei em um projeto que usava o suckerpunch para background jobs. O curioso é que na verdade ele é um processador asíncrono, ele tem uma estrutura de worker, filas, etc, mas ele não usa processos em background, mas executa os processos só de forma asíncrona. Por exemplo, no heroku, se utilizarmos o sucker_punch em algum projeto, não seria preciso ter worker, bastaria ter os web dynos da aplicação rodando que o sucker_punch funcionaria. Por isso não vejo tanta vantagem nele, pois apesar dele permitir que o usuário receba o feedback da ação enquanto algum job que essa ação disparou é executado de forma asíncrona, ele continua ocupando bando do servidor da aplicação.
o delayed job persiste e utiliza o banco e dados para gerenciar os jobs. boa parte do motivo do sidekiq ser ráido, é por ele utilizar o redis para essa função
Mostrar exemplo do código que fiz de sample, mostrando como o worker é definido e executado, mostrando exemplos do perform_in, do perform_async, do perform_at, mostrando como e a instalação, como adicionar segurança para o acesso ao painel web do sidekiq, que necessita do sinatra instalado também, etc, falar que o delay pode ser chamado de qualquer classe na verdade.
Falar da API do sidekiq, mostrar exemplo de como pegar a fila, ver o job, etc.
Evitar sempre serializar objetos grandes, primeiro que eles podem acabar ocupando muita memória no redis, e segundo que o ideal é passar uma referência para o objeto, para que o job busque o objeto e use os dados mais atuais do objeto.
Essa foi uma adição pessoal minha, mas já tive alguns problemas de workers serem executados e darem erro de record not found. Como o worker roda em background, se você chamar ele a partir de uma transaction e ele for acessar algum objeto que vai ser criado ou modificado naquela transaction, existe o risco do worker executar antes da transaction acabar e com isso aquele objeto ainda não existir, ou os dados dele ainda não terem sido atualizados
Idempotency significa não ter problema se o seu job for executado mais de uma vez com os mesmos parâmetros. Por exemplo, se você tem um worker que ao final de um processamento precisa mandar um email, se o envio do email falhar, o work vai para o retry e vai ser executado novamente pelo sidekiq. Executar uma segunda vez o processamento feito pelo worker vai gerar algum problema? Se sim, o worker não foi implementado da forma correta. Algumas alternativas são usar transaction para workers que fazem inserção no banco de dados, pois assim qualquer exceção desfaz tudo que o worker tiver feito antes da exceção, ou colocar condicionais para as ações do worker, ou até ignorar certos erros que podem não ser tão importantes.
E a concorrência é realmente utilizar o background jobs ao máximo, colocando para vários jobs serem executados em paralelo, fazendo benchmark, metrificando os workers, para saber quanto de memória, cpu, etc, seu servidor onde os workers estarão rodando precisa. Não adianta jogar tudo para background e sobrecarregar a cpu ou a memória e o servidor não aguentar.
O envio de email, além da possibilidade de demora, pode ocasionar erros que não devem atrapalhar a conclusão da ação do usuário.
Painel da marca, que processa em background, gera xls, e manda por email, mas também retorna para download do usuário caso ele queira esperar.
Criação de grupos, podendo utilizar aluno e disciplina/aula como exemplo de inserção de dados dessa forma.