Patrick Bamba is the Lead Architect at Attestation Legale, a B2B social networking service which received the “French Tech” accreditation for the last two years. He is responsible for building its architecture and data infrastructure, and especially for the adoption of Apache Spark and its use in production to build data products for 3 years now. Before that he held several roles at startups, always working with data applied to social networks. He holds a master’s degree in data mining and machine learning from Lumière University Lyon 2.
Attestation Legale is a social networking service for companies that alleviates the administrative burden European countries are imposing on client supplier relationships. It helps companies from construction, staffing and transport industries, digitalize, secure and share their legal documents. With clients ranging from one-person businesses to industry leaders such as Orange or Bouygues Construction, they ease business relationships for a social network of companies that would be equivalent to a 34 billion dollar industry. While providing a high quality of service through our SAAS platform, we faced many challenges including refactoring our monolith into microservices, a daunting architectural task a lot of organizations are facing today. Strategies for tackling that problem primarily revolve around extracting business logic from the monolith or building new applications with their own logic that interfaces with the legacy. Sometimes however, especially in companies sustaining an important growth, new business opportunities arise and the required logic from your microservices might greatly differs from the legacy. We will discuss how we used Spark Streaming and Kafka to build a real time business logic translation engine that allows loose technical and business coupling between our microservices and legacy code. You will also hear about how making Apache Spark a part of our consumer facing product also came with technical challenges, especially when it comes to reliability. Finally, we will share the lambda architecture that allowed us to use move data in batch (migrating data from the monolith for initialization) and real time (handling data generated after through use). Key takeaways include: - Breaking down this strategy and its derived technical and business profits - Feedback on how we achieved reliability - Examples of implementations using RabbitMQ (then Kafka) and GraphX - Testing business rules and data transformation. Session hashtag: #EUstr6