The power of abstraction

  • Separating concerns: AccountingLedger now has only the business logic and delegates all its operations regarding interaction with storage to separate classes.

  • Messaging: our products support both RabbitMQ and ActiveMQ. Running in production? Go with RabbitMQ (scales horizontally, is reliable, has good performance, etc). Just doing development? ActiveMQ is the way to go because no setup is needed.
  • Storage: a ton of SQL databases (H2, PostgreSQL, Oracle, MySQL, …), Cassandra and Amazon’s DynamoDB so that it adapts to whatever our clients are used to (and prefer) running.
  • Distributed data processing: we currently use Spark (and AWS EMR) and will be adding support for Flink as well. While Spark is widely used across the industry and many people have experience writing jobs for it and managing it, Flink is more suitable for streaming jobs.


Feedzai Techblog

Welcome to Feedzai Techblog, a compilation of tales on how we fight villainous villains through data science, AI and engineering.

Gabriel Candal

Written by

Software Engineer. Lazy writer. Porto.

Feedzai Techblog

Welcome to Feedzai Techblog, a compilation of tales on how we fight villainous villains through data science, AI and engineering.