I believe reactive systems should be asynchronous, but I overheard multiple times Akka has synchronous actors?
So does it mean Akka is synchronous? or actors work in synchronous manner but the system is asynchronous due to multiple actors?
Scala had synchronous actors. Akka actors are asynchronous from the beginning. Reactive programs can be implemented in either way, synchronous and asynchronous. The only meaningful requirement to reactive programs is support of backpressure. In synchronous programming, backpressure is provided in natural way by blocking participating threads. Providing backpressure asynchronously, when thread blocking is prohibited, is tricky. For this purpose, reactive-streams protocol was designed. Akka actors do not support this protocol and so cannot be considered reactive, but Akka Streams do.
Reactive-streams protocol also can be easily implemented synchronously with threads, semaphores and blocking queues, that is, reactive programs are not deemed to be asynchronous. Generally, synchronous programming is easier, its only drawback compared to asynchronous programming is memory consumption for thread's stacks.
In sum, reactive or not, and asynchronous or not, are independent features, they can occur in all combinations.