Maintaining integrity in distributed systems with a side effect machine


In the beginning there was nothing. And the programmers said “let there be a monolith”. And a monolith was created, but it was coupled and not scalable, and the programmers saw that it was not good. Then they said “let there be microservices”. And microservices were created. At first it was good, but with microservices came chaos and problems, like: integrity, consistency, testing and concurrency issues. And the programmers thought “What if we could isolate all the side effects leveraging idempotency and functional programming to solve these issues?” So they said “let there be a side effect machine”. And a side effect machine was created. And It was very good. A magic new world was out there.


Carolina Pascale (Nubank)
I am a computer scientist and I work as a software engineer at Nubank.
I love to work with functional programming and systems design.
I have helped organising the first Rails Girls at my hometown and I have a goal to bring more women to the programming world.
My passions are: coffee, books, running and travels!

Marcelo Piva (Nubank)
Full stack software engineer with more than 8 years of experience in web and mobile development, and leading teams. Writing parenthesis as a living @nubank. Enthusiast of functional languages, AI (machine and deep learning) and IoT devices.