Wakelet case study
Wakelet is a social media platform that allows users to create and share Collections of content on a variety of topics. Users can add content to their Collections by bookmarking web pages, uploading files, or creating original content. Collections can be made public or private, and users can follow and interact with each other's Collections. Wakelet is designed to be a simple and easy-to-use platform for organizing and sharing content. It can be used for a variety of purposes, such as creating reading lists, curating news articles, organizing research materials, and sharing multimedia content. Users can also collaborate on Collections with other users, making it a useful tool for teamwork and group projects.
Starting as a typical consultancy project by providing an analysis of the existing systems and helping design a new version of the platform.
- a new set of services being built in Scala, Go and NodeJS with TypeScript
- Cloud Architecture consultations
- Set of workshops by the principal engineer on-site in Manchester
As the number of Wakelet's users increased the need for next-gen AuthZ and AuthN has arisen. The team rolled out a new backend-service and model for user and session management, including social login and federation capabilities (OpenID Connect). As part of the project CI/CD pipelines have been developed to properly support the software development lifecycle.
Workshop with the core engineering team - white boarding exercises to understand the existing system. The initial workshop provided some information for evaluation of the current state and resulted in additional requests for information and a discovery session. After producing an initial analysis document there was a review session and discussion to plan further work. The principal engineer worked with the existing in-house team to provide expertise on the cloud architecture, plan for new architecture and hands-on work on the services.
Continuing the engagement by working as a member of Wakelet’s engineering team. Design, development and delivery of a Search API microservice written in Scala. Additional work on the Elastic Search index and optimisation of the search queries and the ingestion pipelines so the accurate data are being displayed and are available to users. Development of new pipelines for CI/CD of new services when being replaced over time from the old architecture to the new architecture (Elastic BeansTalk => ECS Fargate and Lambdas), using terraform as infrastructure as code pipeline.
At this stage the infrastructure and architecture related work continued to progress but the platform has stabilized. Delivering a proof of concept of text sentiment analysis using AWS Lambda and Python for language detection. Another delivered part was utilizing the AWS Comprehend for natural-language processing (NLP) to analyze content for sentiment analysis as a potential future ML function of Wakelet platform.
To seamlessly support integration with identity providers of social networks, the PB team evaluated the approach for the new authorization and authentication layer. Choosing a cost-effective solution considering multiple options - Software as a Service (SaaS) offerings, open source self-managed services and custom built solution. The result is an open source, highly customizable OpenId Connect and Ouath2.0 compliant solution, with the provision of the services, that leverage and extend the infrastructure as a code. The PB team worked together with Wakelet’s engineers and provided support for the development of the new login components and session management including the migration to the new service. The development and customization of the backend service with the migration of the existing user accounts and the authentication service management was handed over to the Wakelets’s engineers. The project involved support of the frontend Login flows for different authentication flows for mobile devices and social logins - Google, Facebook, Microsoft...