Basically a FluentWait is used to define the max. amount of time you want the driver to wait for a condition. You can implement a Fluentwait like this:
.withTimeout(60, SECONDS)
You can also set the frequency interval at which the condition will be checked. The frequency can be set like this:
.pollingEvery(5, TimeUnit.SECONDS)
You can also try to ignore specific types of exceptions whilst waiting, such as NoSuchElementExceptions, which is sometimes thrown when searching for an element on the page. If you want to ignore a "NoSuchElementExceptions", then you can do it like this:
.ignoring(NoSuchElementException.class);
The best situation to use FluentWait is when your trying to test the presence of an element that may appear after every 'x' seconds/minute