diff --git a/docs/source/connecting/authentication.md b/docs/source/connecting/authentication.md
index 8b60cfecfd..9c6ed0e086 100644
--- a/docs/source/connecting/authentication.md
+++ b/docs/source/connecting/authentication.md
@@ -32,49 +32,55 @@ Finally, to make use of the custom authentication, use the `authenticator_provid
# extern crate scylla_cql;
# extern crate tokio;
# extern crate bytes;
-# extern crate async_trait;
+# extern crate futures;
# use std::error::Error;
# use std::sync::Arc;
use bytes::{BufMut, BytesMut};
-use async_trait::async_trait;
+use futures::{future::BoxFuture, FutureExt};
use scylla::authentication::{AuthError, AuthenticatorProvider, AuthenticatorSession};
struct CustomAuthenticator;
-#[async_trait]
impl AuthenticatorSession for CustomAuthenticator {
// to handle an authentication challenge initiated by the server.
// The information contained in the token parameter is authentication protocol specific.
// It may be NULL or empty.
- async fn evaluate_challenge(
- &mut self,
- _token: Option<&[u8]>,
- ) -> Result