SHALB, together with the Spryker team, worked to develop a key functionality for the Spryker e-commerce platform. Our engineers showed deep knowledge of AWS cloud products and strong expertise in the field of cloud computing.

 

CUSTOMER BACKGROUND

Spryker Systems GmbH, (Spryker), is one of the key players in the market of digital commerce. The company provides a high-functional platform-as-a-service (PaaS) solution that enables its customers to run their online commerce businesses in the most advantageous and secure way. The platform enables B2B, B2C, D2C, and Marketplace capabilities out of one stack. It is one of the most advanced commerce platforms in the market with over 900 API-based modules, cloud-enabled, and enterprise-ready.

 

PROJECT DESCRIPTION

The specifics of Spryker business model consists of two parts: PaaS, a platform where Spryker’s customers register as tenants to run their online shopping infrastructures; and SaaS, a software that enables customer services on the platform. The applications that enable certain functionalities are being developed both by Spryker’s in-house teams and 3rd party providers. In order to make these services easily available to customers, Spryker wanted to implement a middleware solution – an event platform that would link customers (PaaS) and applications (SaaS).

 

However, building such a product required strong skills in the field of cloud engineering – the resources that Spryker lacked in-house and had to hire out. Contacting SHALB was an internal suggestion that resulted in two months of fruitful collaboration. Piotr Nowinski, Head of Product Engineering at Spryker Systems GmbH, says: “We were looking for certified AWS experts, and they checked all the boxes.”

Requirements

According to Volodymyr Tsap, CTO at SHALB, the task involved building a core piece of functionality – a basic component that underlies the communication between customers and applications on the Spryker platform. As a core technology, it needed to work on a steady basis, be fault-tolerant and scale on demand. As the platform also had to process all system queries, it was essential to implement enhanced security measures to avoid security threats.

 

Implementation of subscription model

The platform allows for two types of communication between customers and applications: synchronous for REST API requests and asynchronous for independent tasks, in particular processing working queues.

 

By using Amazon SQS/SNS service we realized a queue subscription – the model that underlies communication between users (PaaS tenants) and applications on the Spryker platform. The process involves creating working queues that both users and applications subscribe to in order to exchange messages. The user puts a task on the queue, and a message broker notifies the subscribed application. Once the task is executed, the user receives a notification. Queue subscription allows for executing multiple tasks in parallel without blocking each other, making all the processes run much faster.

 

Access control

To ensure secure access to the platform, we used AWS API Gateway Lambda authorizer, integrated with Auth0.

 

Once a client calls the platform API, the API Gateway calls Lambda authorizer, which in turn invokes Lambda function to verify the identity of a user or service. The caller identity is received in the Auth0 access token. Then, based on the response from Lambda function, the API Gateway determines whether the client can access the platform API.

 

Scaling

In order to eliminate bottlenecks in performance, we provided horizontal scaling for the platform. Considering the amplitude of Spryker’s business, we opted for the same technologies as Amazon web developers use to enable limitless scaling of AWS platform – Simple Queue Service (SQS), DynamoDB, Lambda, Simple Notification Service (SNS), etc. As a result, we achieved almost infinite scaling for Spryker’s systems.

Challenges

Among the main project challenges, Volodymyr Tsap mentions a large number of components involved and the work required to assemble them. “On the whole, the project required a lot of custom programming from our side, – he explains. – We needed to programme Lambda functions and enable integration with external services such as Auth0. As there were no ready components, we developed some of them from scratch and tested how they work together. Apart from that, we captured all our working in Terraform code following the Infrastructure as code approach.”

 

BUSINESS RESULT

In two months, SHALB successfully delivered the work, meeting the client’s requirements. Working together with Spryker’s internal team, we developed a well-tested, configurably managed solution that, after further elaboration and integration, formed into the Spryker App Composition Platform.

 

Introducing the subscription model made life easier both for Spryker’s cloud customers and developers. First, it allowed for simple integration with 3rd party services for Spryker’s PaaS tenants: now they can subscribe to applications and obtain certain functionality in a seamless, no-code way. Secondly, it facilitated the development of the marketplace platform for Spryker’s tech partners. With the application subscription model in place, developers are spared the necessity of deploying similar functionality to multiple PaaS environments.

 

CUSTOMER FEEDBACK

Commenting on the collaboration with SHALB, Piotr Nowinski says:

Piotr Nowinski, Head of Product Engineering at Spryker Systems GmbH

Overall, they did a good job. They understood the timelines and worked towards them, delivering on time and within the budget. We didn’t have to push them. SHALB understood the goal we wanted to achieve and worked towards it.

Working on the Spryker project added to our expertise in cloud computing and custom software development.

 

Have some challenging tasks? Don’t hesitate to contact us! The SHALB team is capable of delivering even the most complex project. List your business and technical goals, and we show you the way to achieve them. Book an online meeting or contact sales@shalb.com for more information.