~/talk

How to write well designed imports with Symfony

Talkat code.talks 2019 · 2019-10-24..10-25· [php, software-architecture]
slides:none on file

Baseline import reads the IMDB TSV with 9.5 million records (~500 MB) via a generator-based reader, maps rows in a processor and persists in batches (250) with Doctrine EntityManager; full run takes about 1h03m and stays ~12 MB memory. Parallel “poor man” partitioning halves runtime; replacing partition manager with Symfony Messenger and queues (Doctrine/Redis/RabbitMQ) scales workers horizontally and hits hundreds of messages/sec. Built failure transports and retry (backoff 1s→2s→4s); solution works but adds concurrency, monitoring and operational complexity.

AI-written summary · about

  1. 0:00Start
  2. 4:01Reusability
  3. 4:24Imdb Public Datasets
  4. 7:42Sequence Diagram
  5. 9:10Example Code
  6. 17:50Memory Usage
  7. 18:32Software Architecture
  8. 19:36Partition Manager
  9. 22:56Symphony Messenger
  10. 26:57Redis Queue
  11. 38:23Failure Transports
  12. 38:50Retry Strategy
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.