Using Debezium to ensure consistency between PostgreSQL and Kafka is nice, but what at what cost? Here is what we learned.
CQRS is a useful pattern to reason about the activities of a specific domain. But it definitely comes with a steep learning curve. Reads, Writes, DDD, Event Sourcing, Eventual Consistency, why should we care?
Kafka Streams has a high-level DSL to work with, but offers more power with its low-level DSL. In the latest versions, we can enable automatic optimizations: they can greatly help you, but we should understand at what cost.
Exceptions are ubiquitous in Java, but they have many downsides. We'll see how to deal with errors in a functional way, using vavr datatypes.
We all started with Scala Futures. They offer so much power and their syntax is simple. But they also bring their own troubles, fixed by better abstractions.
It's common to have to stack monads to provide several effect at once: Monad Transformers are here to help us. But they bring their own issues. Hopefully, typeclasses can help us again.
Typeclasses allow us to not commit too early to an implementation and simplify the scope of what a function can do. Even better, it's easy to provide a better (faster) implementation without hassle.
We can learn a lot from functions just by looking at their signatures. The simpler the types, the easiest it is to understand it. Polymorphism and Pure Functional Programming help us.
Who said parsers had to be complicated to write? We'll see how we can use the State monad to write mini-parsers (to recognize letters, digits), combine them (to recognize words, numbers), then finally parser a complete language.
The kind-projector sbt plugin is quite ubiquitous in the Scala world. It introduces new keywords to provide some syntactic sugar for advanced type-related usage. It's also depends on the partial-unification done by scalac, which has some caveats.
A hash function is any algorithm or subroutine that maps large data sets of variable length, called keys, to smaller data sets of a fixed length.
The consuming model of Kafka is very powerful, can greatly scale, and is quite simple. It's useful to understand how the internals work, like the topic __consumer_offsets, and see how to use Kafka Streams Druid to display its content.
Apache Avro is a must nowadays, but it's rarely used alone. For the sake of schema evolution (any business have requirements changes), it's often associated with a Schema Registry. This also has a performance impact because every message has to be checked.
JMX is an API used to expose data from any Java program to the outside. It's used by tons of softwares and libraries because you can then gather the data in any other system.
A circuit-breaker avoids useless call retries if it already knows the call will fail. It can provide a fallback instead. Multiple libraries exist to hide this complexity and provide observability.
When a service call fails, the simplest pattern to ensure a basic resilience is to try again. Multiple libraries exist to hide this complexity.
A global overview of the micro-services strategy. It must deal with failures, how to communicate between them, sync/async, performances, observability, consistency and much more.
Basically, Gatsby on Netlify is so good, and free.
Our jobs don't stop to evolve: continuous learning is mandatory. There are so many sources of knowledge out there. Focus.
Why slf4j exists? And how to use it!
After JNI, it's JNA. We can depends on third-party APIs in C/C++ in a simple way.
I always saw openssl as a complicated beast. I don't anymore. It's just math.
As a Data Engineer, moving data from one point to another, while being resilient IS the job. We'll do that with Flume, HDFS, and Impala.
Never ssh with a password: use asymmetric cryptography to never type them again.
Java and the JVM is a humongous world with tons of tools, options, and behaviors to be aware of (GC). It's always useful to have an overview.
Integrating ESLint into webpack: that can save your time and find bugs.
As a React Front-end Developer, you're probably using Hot Reloading every day. But do you know how it's working?
Understanding the HBase split and merge operations on HDFS.
ReactJS: using inline styles VS stylesheets. What are the differences?
Des classes CSS dédiés à leur composant ReactJS uniquement.
boot2docker sous Windows 8.1: quelques subtilités et erreurs rencontrées.
Stop refreshing the page when you just changed some background-color. Hot Reloading is a must to gain productivity.
If you're stay in your confort zone, you'll be stuck later and will regret it. Challenge yourself!
Performance matters. A website should not be optimized right away, but it must neither be under-performant.
This was written when React was in version 0.13.0rc1. Gimme a break.
Gulp is a popular build system. Popular because it's fast thanks to its streams usage.
Browserify was a popular Javascript bundler, simpler than Webpack.
There are multiple patterns for components to talk to each others, according to their bond (parent, child, other). We'll see all of them!
What can we find in this.props.children, and how to use it?
Thinking in ReactJS is another mindset to build. Components must be thought decoupled and that's for the best!
The experience of building a complete back-end in NodeJS.
How ReactJS works, what are the famous components we must write? What are the principal features?
Alt-GR is a bit delicate to handle with Atom on Windows