Message-driven architecture