Is posting the message on Kinesis stream asynchronous, or there any way to run it asynchronously using GoLang SDK API?
The documentation appears to be pretty thorough about which operations are asynchronous, so I would say no: posting a message is not asynchronous. But that only makes sense anyway--how can it return an error, if the operation hasn't yet completed?
But can you make it asynchronous? Of course. In Go it's trivial to make anything asynchronous--just run it in a goroutine.
If you're new to goroutines, A Tour of Go is a great introduction to the concept.
No, it's synchronous.
When you call PutRecord API endpoint, a record is written in Kinesis, and as a response "ShardId" and "SequenceNumber" is returned. That displays where the recorded data is placed upon a stream (shard).
See document: https://docs.aws.amazon.com/kinesis/latest/APIReference/API_PutRecord.html