Archaeological analysis reveals climatic disruption spurred settlement changes in coastal eastern Africa, suggesting resilience and adaptation.
Climate extremes are often framed as triggers of societal crisis and collapse, yet human mobility frequently emerges as a resilient response. We show that climatic disruption destabilized inland farming systems in sixth-century CE eastern Africa, with compounding stress during the Late Antique Little Ice Age (LALIA). Using archaeological evidence, paleoclimate reconstructions, environmental models, and bioclimate simulations, we examine how these overlapping stressors reshaped settlement dynamics. Multi-proxy paleoclimate records document sixth-century CE hydroclimatic heterogeneity, with droughts and wetter intervals occurring asynchronously across the region. These conditions generated uneven ecological pressures, disproportionately affecting rainfed agricultural systems associated with inland Early Iron Age communities linked to the spread of Bantu-speaking farmers. By the late sixth to early seventh centuries CE, archaeological evidence indicates that some of these groups established the first sustained settlements along the eastern African coast, despite low suitability for rainfed cereal cultivation and exposure to climatic and environmental hazards unfamiliar to inland settings. This shift reflects the activation of long-standing mobility patterns within eastern African lifeways, expressed here as a more durable reconfiguration: permanent settlement in environmentally challenging coastal zones supported by subsistence diversification and access to marine resources. These developments laid the foundations for proto-Swahili communities and one of the Indian Ocean’s most enduring maritime traditions, demonstrating how climatic stress can catalyze social innovation.
No takes yet. Share an insight, caveat, or question.
Dumitru et al. (2026) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: